我正在使用 jasmine 創建一個間諜物件,并回傳一個物件,我可以從我回傳的物件中模擬函式嗎?
例如:
let mockService = jasmine.createSpyObj(['fun']);
mockService.fun.and.returnValue({value: 1});
我試圖在這個例子中模擬 get 函式:
let x = service.fun();
x.get();
uj5u.com熱心網友回復:
只需使用jasmine.createSpyObj()方法為service.fun().
describe('70304592', () => {
it('should pass', () => {
const funSpy = jasmine.createSpyObj(['get']);
funSpy.get.and.returnValue('1');
let serviceSpy = jasmine.createSpyObj(['fun']);
serviceSpy.fun.and.returnValue(funSpy);
const x = serviceSpy.fun();
expect(x.get()).toBe('1');
});
});
update : 如果物件有屬性和方法,你可以像這樣創建 spy obj:
describe('70304592', () => {
it('should pass', () => {
const funSpy = jasmine.createSpyObj('fun', {}, { get: jasmine.createSpy(), value: 'please upvote xD' });
funSpy.get.and.returnValue('1');
let serviceSpy = jasmine.createSpyObj(['fun']);
serviceSpy.fun.and.returnValue(funSpy);
const x = serviceSpy.fun();
expect(x.get()).toBe('1');
expect(x.value).toBe('please upvote xD');
});
});
請參閱監視屬性檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/385184.html
