在编写单元测试时,我遇到了一个奇怪的案例,我不知道问题出在哪里。
我已经准备了用于复制的短代码:
TestInjectable-简单的可注入类
@Injectable()
class TestInjectable {
testProperty = 'testValue';
}
Run Code Online (Sandbox Code Playgroud)
TestComponent-使用TestInjectable的小组件
@Component({
providers: [TestInjectable],
template: ''
})
class TestComponent {
constructor(private injectable: TestInjectable) {
}
doTest() {
return this.injectable.testProperty;
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试
describe('Test TestComponent', () => {
beforeEach(async(() => {
let testInjectableMock: TestInjectable = new TestInjectable();
testInjectableMock.testProperty = 'valueInMock';
TestBed.configureTestingModule({
providers: [{provide: TestInjectable, useValue: testInjectableMock}],
declarations: [TestComponent]
}).compileComponents();
}));
it('should do something', () => {
let fixture: ComponentFixture<TestComponent> = TestBed.createComponent(TestComponent);
let component: TestComponent = fixture.componentInstance;
expect(component.doTest()).toBe('valueInMock');
});
});
Run Code Online (Sandbox Code Playgroud)
由于必须 …