Тестирую приложение с помощью Codeceptjs. Столкнулся с необходимостью принудительно завершить тест с ошибкой по условию.
Самый простой и рабочий вариант — писать в шаг вот такую строчку.
require("assert").fail("Test failed");
Вроде на этом можно было бы успокоиться. Но нет! Захотелось красоты. Чтобы написал в нужном месте I.fail(‘Текст ошибки’), и тест завершился.
Пробовал через добавление метода в steps_file.js, но ничего не вышло. Нужно действовать через хелпер. Ну и ладно.
1. Иду в папку с тестами и создаю в ней ещё одну — helpers. Создаю в ней файл — fail.js
2. Пихаю в fail.js класс с одним единственным методом — fail.
/*
* Принудительное зафейливание тестов.
*/
const assert = require('assert');
class Failer extends Helper {
/**
* @param {string} [message]
*/
fail(message = 'Test failure.') {
assert.fail(message);
}
}
module.exports = Failer;
3. Добавляю хелпер в конфиг.
helpers: {
...
Failer: {
require: "./helpers/fail.js"
}
...
4. Готово.
Теперь, я могу красиво зафейлить тест на любом шаге.
Мне удобно)) Возможно, пригодится и вам.
Напишите комментарий