Итак, у меня есть простой метод, который выполняет что-то, только если определена переданная переменная:
public myFunction(item) {
if (typeof item !== 'undefined') {
item.doSomething();
}
}
Вот мой тест в jasmine:
describe('myFunction()', () => {
it ('should only do something if the item passed is defined.', () => {
const item = new Item();
spyOn(item, 'doSomething');
service.myFunction(item);
//this works
expect(item.doSomething).toHaveBeenCalledTimes(1);
});
it ('should not do something if the item passed is undefined.', () => {
const item = undefined;
spyOn(item, 'doSomething');
service.myFunction(item);
//this does not work..
expect(item.doSomething).toHaveBeenCalledTimes(0);
});
});
Мой первый тест работает нормально. Но я не знаю, как express мой второй тест. Как я могу сказать, что doSomething
никогда не вызывался, когда передаваемый элемент не определен? Это кажется довольно тривиальным, но у меня проблемы с этим. У меня такое чувство, что это невозможно, потому что я не могу шпионить за чем-то, что undefined
. Опять же, может быть, есть обходной путь?