我正在为我的 Angular 应用程序编写单元测试,并且正在学习如何使用间谍。
目前,我的组件使用的每个服务,我都必须编写这样的内容
let fakeMyService = jasmine.createSpyObj('fakeMyService', ['method1', 'method2']);
fakeMyService.method1.and.returnValue(Observable.of());
fakeMyService.method2.and.returnValue(Observable.of());
TestBed.configureTestingModule({
declarations: [MyComponent],
providers: [
{ provide: MyService, useValue: fakeMyService }
]
}).compileComponents();
Run Code Online (Sandbox Code Playgroud)
虽然这可行,但这似乎不是设置我的间谍的最佳方法。首先,我必须在 MyService 中输入我想要放入间谍的每个函数。其次,它不是强类型的。因此,如果我更改名称,我不会立即知道,然后,我必须在每个地方更新它。
有没有某种方法可以让我指定类,它会自动返回一个假类,其中包含所有方法的间谍?
所以像这样的事情
let fakeMyService = jasmine.createSpyObj<MyService>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3705 次 |
| 最近记录: |