我有以下2个课程
class B {
public b() { return 1 }
}
class A {
b: B = new B()
public run() { return this.b.b() }
}
我尝试使用以下测试来测试类B的方法b(),但该测试无法正常工作
describe('A spy', () => {
let a: A
let b: B
beforeEach(() => {
a = new A()
b = new B()
spyOn(b, 'b')
a.run()
})
it('tracks that the spy was called', () => {
expect(b.b).toHaveBeenCalled()
})
})
我是否误解了茉莉花的测试概念? 我还尝试了“ jasmine.createSpy”,它也无法正常工作
P.S。我确实尝试过手动测试,并确认已经调用了B类的方法b()。
答案 0 :(得分:1)
b
变量没有在任何地方使用,它与this.b
中的a
对象不同,因此不会调用b.b
。
应该是:
a = new A()
spyOn(a.b, 'b')
a.run()
expect(a.b.b).toHaveBeenCalled()