我正在使用旁观者和jest进行角度测试。我想在以下设置中更改模拟服务的属性:
describe('SearchComponent', () => {
let spectator: Spectator<SearchComponent>;
const createComponent = createComponentFactory({
component: SearchComponent,
providers: [
mockProvider(SearchService, {
isActive$: of(false), // to be changed
}),
],
shallow: true,
});
beforeEach(() => {
spectator = createComponent();
});
it('should display bar if isActive(true)', () => {
});
it('should display foo if isActive(false)', () => {
});
});如何更改isActive$的值?
发布于 2021-08-13 17:58:01
应该使用工厂和临时保存的提供者模拟...这样的东西对我很有效(对不起,没有测试这个版本):
class SearchServiceMock implements Partial<SearchService> {
public isActive = of(false);
}
describe('SearchComponent', () => {
let spectator: Spectator<SearchComponent>;
let searchServiceMock: SearchServiceMock;
const createComponent = createComponentFactory({
component: SearchComponent,
shallow: true,
spectator = createComponent(
providers: [
{
provide: SearchService,
useFactory: () => {
searchServiceMock = new SearchServiceMock();
return searchServiceMock;
}
],
);
});
beforeEach(() => {
spectator = createComponent();
});
it('should display bar if isActive(true)', () => {
searchServiceMock.isAcrive = of(true);
spectator = createComponent();
// ... test here ...
});
it('should display foo if isActive(false)', () => {
});
});很抱歉回答得这么简短,不确定是否有人对此感兴趣。感觉真的很脏。
https://stackoverflow.com/questions/64666399
复制相似问题