Я относительный новичок ко всем вещам javascript, node.js, mocha и т.д.
В моем коде у меня есть объект Unit, у которого есть disable()
, который устанавливает для свойства disabled значение true и isDisabled()
, который возвращает свойство disabled. Он также имеет метод nextTurnReset()
, который сбрасывает блок в начале следующего хода. Я написал тестовый набор, чтобы проверить это поведение. Сначала я отключу объект, а затем попытаюсь проверить, отключен ли он. Однако единичная переменная внутри моего первого теста, которая находится в анонимной функции, переданной методу Mocha it()
, находится в состоянии без отключения, как я наблюдал с отладчиком node.
describe('#disable()', function() {
var unit = tests.newUnit();
unit.disable();
debugger;
it('disabled off turn?', function() {
debugger;
(unit.isDisabled()).should.be.exactly(true);
});
unit.nextTurnReset();
it('disabled on next turn?', function() {
(unit.isDisabled()).should.be.exactly(true);
});
unit.nextTurnReset();
it('disabled on 2nd turn?', function() {
(unit.isDisabled()).should.be.exactly(false);
});
});
для записи, первые два теста терпят неудачу, и последний успешно показывает, что устройство никогда не отключается вообще.
из использования репликатора node: после первого debugger;
оператора unit.disabled == true
, но после второго debugger;
оператора unit.disabled == false
. Я ожидаю, что значение будет истинным в обоих случаях.
Любая идея, почему это так? Кроме того, каков правильный способ написания тестов Mocha для получения ожидаемого результата?
Большое спасибо!