Робимо тести читабельнее

Нова замітка про те, як зробити тести читабельнее. Я вже писав замітку про бібліотеки, які допомагають писати прості АССЕРТ. Найчастіше функціональності, яку надають ці бібліотеки, вистачає для написання читабельних тестів. Але ми ж йдемо шляхом поліпшення. Бувають випадки, коли потрібно написати свій власний матчер, щоб спростити АССЕРТ або зробити його читабельнее.

Навіщо взагалі це потрібно? Скажімо, у вас є інстанси HttpResponse і вам потрібно перевірити його параметри.

Цей приклад наочно показує, що з застосуванням кастомних матчеров код стає читабельнее. Потрібно відзначити, що існує певна кількість бібліотек, які дозволяють використовувати готові матчери. Наприклад, набір матчеров від Yandex. Брати чуже і користуватися - це добре, але ще краще вміти написати свій матчер. Приступимо до написання hamcrest матчера.

Все, що нам потрібно, - це просто наслідувати клас TypeSafeMatcher і реалізувати три методу. Потрібно бути уважним: третій метод describeMismatchSafely не є абстрактним, за замовчуванням він буде виводити результат, просто викликаючи на об'єкті toString (). Ми ж переопределили цей метод і в результаті у нас виходить такий ось код:

І таке повідомлення про помилку:

Ну ось, дуже легко і просто ми написали свій матчер і поліпшили читабельність наших тестів. Більш того, кастомниє матчери дуже хороші при використанні Spock Framework як тест Ранера. Але це вже історія наступної замітки. Підписуйтесь, щоб отримувати замітки першими. До зустрічей ... # 8203;

Схожі статті