我写了两个单元测试,但没有执行。 请参阅下面的两个屏幕截图。
有什么问题,为什么不执行?
你可以阅读我收到的消息: “执行 45 of 47 ” 也意味着,测试被发现,只是没有被执行。 怎么会这样?
谢
describe('LanguageSelectorComponent', () => {
let component: LanguageSelectorComponent;
let fixture: ComponentFixture<LanguageSelectorComponent>;
let find: any;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [LanguageSelectorComponent],
imports: [DxModule, RouterTestingModule],
providers: [HttpClient, HttpHandler, NGXLogger, LanguageSelectorService]
});
fixture = TestBed.overrideComponent(LanguageSelectorComponent, {
set: {
providers: [{ provide: LanguageSelectorService, useClass: MockLanguageSelectorService }]
}
}).createComponent(LanguageSelectorComponent);
fixture.detectChanges();
component = fixture.componentInstance;
find = (de => selector => de.query(By.css(selector)))(fixture.debugElement);
});
it('should create', () => {
expect(component).toBeTruthy();
});
it('should create dx select box', () => {
expect(find('dx-select-box')).toBeDefined();
});
});
答案 0 :(得分:1)
您可以根据需要使用karma-jasmine运行少量测试用例。这可以通过将describe
加上f(代表焦点)作为fdescribe
或it
加fit
作为前缀。
fdescribe
运行该组件中实现的所有测试规范。 fit
仅运行该特定测试规范。可以在多个测试规范上执行fit
,这些测试规范将运行多个测试规则而忽略其他测试规范。
要排除少数测试规范或整个组件分别使用xit
或xdescribe
。
请查看这些特殊关键词的规格。你的问题可能会得到解决。
答案 1 :(得分:0)
解决方案不是在上面的代码中找到的。 我的languageSelectorService包含了一个cookieStoreService 并且在构建应用程序时存在不匹配。 我将cookieStoreService移动到组件中,现在它可以工作。
感谢阿米特为你的台词! (我学习了fdescribe。)
谢