有没有办法让Jasmine生成间谍,以便通过这样的测试:
it('a', function () {
const a = jasmine.createSpyObj('a', ['b', 'c.d', 'e.f.g']);
a.b();
a.c.d();
a.e.f.g();
expect(a.b).toHaveBeenCalled();
expect(a.c.d).toHaveBeenCalled();
expect(a.e.f.g).toHaveBeenCalled();
});
这种用例是减少创建此类嵌套间谍所需的类型
答案 0 :(得分:0)
没有茉莉api可以轻松为您创建。您需要直接创建间谍,这样最好:
const a = jasmine.createSpy().and.returnValue({
b: jasmine.createSpy(),
c: jasmine.createSpy().and.returnValue({
d: jasmine.createSpy()
}),
e: jasmine.createSpy().and.returnValue({
d: jasmine.createSpy().and.returnValue({
f: jasmine.createSpy()
})
})
});
如果您需要经常执行此操作,则建议您创建某种函数,该函数可以递归地提取间谍描述并从中生成嵌套的间谍对象。但是,茉莉花中没有一种能为您做到这一点。