我在函数中有一个if-else语句。我想测试两种情况。启动实例时,self.count
设置为1
。当我运行我的测试时,它会转到虚假陈述。如何让self.count = 2
进入else语句?
测试:
it('verify change', function () {
spyOn(this.instance, 'change').and.callThrough();
this.instance.change('messageBoard');
expect(this.instance.change).toHaveBeenCalled();
});
使用Javascript:
self.count = 1;
self.change = function change() {
if(self.count <= 1) {
// do stuff
} else {
// do stuff
}
};
我知道我可以使用this.object.method.and.returnValue()
使方法返回一个值,但我不知道如何使用变量。
答案 0 :(得分:0)
所以我似乎不需要模拟变量。我可以在测试中分配它,如:
it('verify change', function () {
this.instance.count = 2; // this would nake it go to the else block
spyOn(this.instance, 'change').and.callThrough();
this.instance.change('messageBoard');
expect(this.instance.change).toHaveBeenCalled();
});