【发布时间】:2023-03-12 19:58:02
【问题描述】:
当我在组件的初始测试中提供此模拟服务时,如何从该模拟服务返回两个不同的值?我希望能够从模拟服务中为两个不同的测试返回两个不同的值
describe('example', () => {
let component: ExampleComponent;
let fixture: ComponentFixture<ExampleComponent>;
let mockService: Partial<MockService>;
beforeEach(async(() => {
mockService = {
mockMethodSpy: jasmine.createSpy('mockMethod')
};
TestBed.configureTestingModule({
declarations: [ ExampleComponent],
imports: [],
providers: [
{ provide: MockService, useValue: mockService },
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ExampleComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should return true from mock service', () => {
expect(mockService.mockMethodSpy).toBe(true);
});
it('should return false from mock service', () => {
expect(mockService.mockMethodSpy).toBe(false);
});
});
【问题讨论】:
-
你为什么要断言/测试你的间谍返回的内容,而不是测试主题组件?
-
这能回答你的问题吗? stackoverflow.com/a/16208124/2358409
标签: angular karma-jasmine