Тестирую приложение с помощью 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. Готово.
Теперь, я могу красиво зафейлить тест на любом шаге.
Мне удобно)) Возможно, пригодится и вам.
Напишите комментарий