qwe*_*asd 6 jasmine karma-jasmine angular2-testing angular
我想测试实现ControlValueAccessor接口的组件允许[(ngModel)]在我的自定义组件中使用,但问题是通常的输入是正确的但是ngModel- undefined.这是代码示例:
@Component({
template: `
<custom-component
[usualInput]="usualInput"
[(ngModel)]="modelValue"
></custom-component>`
})
class TestHostComponent {
usualInput: number = 1;
modelValue: number = 2;
}
describe('Component test', () => {
let component: TestHostComponent;
let fixture: ComponentFixture<TestHostComponent>;
let de: DebugElement;
let customComponent: DebugElement;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
CustomComponent,
],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
Run Code Online (Sandbox Code Playgroud)
所以,我希望我的customComponent中的regularInput Input()值等于1(它是真的),并且ngModel值将等于2,但是ngModel = undefined并且在调试之后我知道ControlValueAccessor writeValue方法不会在测试环境中调用(但是它适用于浏览器).那么我该如何解决呢?
在您的组件内部,ControlValueAccessor您无权访问它,ngModel除非您注入它并执行一些技巧来避免循环依赖。
ControlValueAccessor有writeValue方法在更新时从控件接收值 \xe2\x80\x94 如果需要,您可以将此值存储在组件中然后测试它。
| 归档时间: |
|
| 查看次数: |
1528 次 |
| 最近记录: |