How to force test fail in Codeceptjs (или как принудительно зафейлить тест)

Тестирую приложение с помощью 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. Готово.

Помогло? Зашли Админу на чай.

Теперь, я могу красиво зафейлить тест на любом шаге.

Мне удобно)) Возможно, пригодится и вам.

 

Напишите комментарий