У меня есть следующий тест:
it.only('validation should fail', function(done) {
var body = {
title: "dffdasfsdfsdafddfsadsa",
description: "Postman Description",
beginDate: now.add(3, 'd').format(),
endDate: now.add(4, 'd').format()
}
var rules = eventsValidation.eventCreationRules();
var valMessages = eventsValidation.eventCreationMessages();
indicative
.validateAll(rules, body, valMessages)
.then(function(data) {
console.log("SHOULD NOT GET HERE");
should.fail("should not get here");
done();
})
.catch(function(error) {
console.log("SHOULD GET HERE");
console.log(error);
});
done();
});
Правильный путь выполнения теста. Когда я проверяю данные, он переходит в "НЕ ДОЛЖЕН ПОЛУЧИТЬ ЗДЕСЬ". Тест действительно должен убедиться, что это не так. И когда я добавляю не проверяющие данные, код действительно переходит в "ДОЛЖЕН ПОЛУЧИТЬ ЗДЕСЬ". Поэтому действуют правила проверки.
То, что я пытаюсь сделать, это убедиться, что тест завершился неудачно, когда у меня есть плохие данные проверки и он проверяет. Однако, когда я запускаю его, так как он с хорошими данными, он проверяет, запускает сбой, но мокко по-прежнему отмечает его как прохождение. Я хочу, чтобы он потерпел неудачу, если выполнение переходит к "НЕ ДОЛЖНО ЗДЕСЬ".
Я попробовал сбросить новую ошибку ( "fail" ); а также не повезло. В обоих случаях он действительно запускает код в блоке .catch.
Любые предложения? Я нашел решения для этого в аналогичном вопросе. Этот вопрос написан, потому что эти решения, похоже, не работают для меня.