Отключить ожидание Жасмин, как xdescribe или xit?

На веб-сайте Jasmine я вижу, что мы можем отключить xdescribe или отдельные характеристики по xit, Есть ли способ отключить только ожидание (вроде xexpect)?

Причина, по которой я спрашиваю об этом, заключается в том, что я пишу e2e-тесты с Protractor, и в нашей непрерывной интеграции у нас пока нет (если вообще) доступа к базе данных, хотя локально мы можем выполнять реальные сквозные тесты с доступом к базе данных, например.

Я хотел бы отметить индивидуальные ожидания как необязательные, в зависимости от конфигурации или переменной среды. Было бы неплохо сделать один раз переключение, а затем создать оболочку вокруг ожидаемого, которая завершится неудачей только в том случае, если мы запускаем тесты локально (с доступом к базе данных).

Так, например, я могу создать новое семейство спецификаций:

if (process.env.DB_AVAILABLE) {
  dbit = it;
} else {
  dbit = xit;
}

и напишите спецификации, которые зависят от соединения с базой данных, следующим образом:

dbit('creates new user', function () {});

Есть ли способ сделать то же самое с expect (например dbexpect)?

Если с моим подходом что-то в корне не так, не сдерживайтесь и дайте мне знать.

1 ответ

Решение

Вы можете создать свой собственный xexpect путем реализации всех методов / свойств с пустой функцией:

var xexpect = function() {
  return xexpect;
};

Object.getOwnPropertyNames(jasmine.Expectation.prototype).forEach(function(name){
  xexpect[name] = xexpect;
});

Object.defineProperty(xexpect, 'not', {get: xexpect});

Использование:

xexpect(1).toBeGreaterThan(2);

xexpect(true).not.toEqual(true);
Другие вопросы по тегам