我是单元测试的新手。我正在尝试对以下代码的if条件进行单元测试:
hide() {
this.count --;
if (this.count === 0) {
this.loaderIs = false;
}
}
我正在尝试在loaderIs
变量上使用间谍功能。
it('hide function check', () => {
expect(loaderService.hide).toBeDefined();
spyOn(loaderService, 'loaderIs');
loaderService.hide();
expect(loaderService.loaderIs).toHaveBeenCalled();
});
非常感谢任何输入和指南。
答案 0 :(得分:0)
问题是你不应该模拟你正在测试的单位。 (在您的情况下,它是hide
方法)。调用hide
方法应该调用实际方法。请参阅下面的代码
describe('Some test: ', () => {
beforeEach(() => {
loaderService.loaderIs = false;
// ...
});
it('loaderIs should be falsy', () => {
loaderService.count = 1
loaderService.hide();
expect(loaderService.loaderIs).toBeFalsy();
});
it('loaderIs should be truthy', () => {
loaderService.count = 2
loaderService.hide();
expect(loaderService.loaderIs).toBeTruthy();
});
});