我正在尝试量角器(5.4.2),并尝试测试Angular组件。 我创建了以下测试,灵感来自Joe Eames的Unit testing in Angular course。
我的(错误的)代码
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { DetailsComponent } from './details.component';
import { By } from 'protractor';
describe('DetailsComponent', () => {
let fixture: ComponentFixture<DetailsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [DetailsComponent]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(DetailsComponent);
fixture.detectChanges();
});
it('contains 3 titles', () => {
expect(fixture.debugElement.queryAll(By.css('.card-title')).length).toBe(3);
});
});
但是,在测试方法的 .query 调用中发生以下类型错误:
类型'By'的参数不能分配给'谓词'类型的参数。
我不明白为什么会出现此错误,因为我的代码看起来像该示例。
答案 0 :(得分:1)
发生此错误是因为您是从By
而不是protractor
模块中导入了@angular/platform-browser
。
将此import { By } from 'protractor';
更改为import { By } from '@angular/platform-browser';