【问题标题】:I can't get FormBuilder from TestBed with FormsModule, ReactiveFormsModule imported我无法从 TestBed 获取 FormBuilder 并导入 FormsModule、ReactiveFormsModule
【发布时间】:2017-08-25 04:01:50
【问题描述】:
TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
]
});
TestBed.get(FormBuilder);
我需要做什么?还是我应该只使用 new 运算符来创建一个?
【问题讨论】:
标签:
forms
angular
testing
dependency-injection
【解决方案1】:
不,you can:
describe('FormBuilder', () => {
let fb;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
ReactiveFormsModule
]
});
fb = TestBed.get(FormBuilder);
});
it('should be FormBuilder instance', () => {
expect(fb instanceof FormBuilder).toBe(true);
});
});
正如here 解释的那样,TestBed.get 与inject 帮助器相同,它在第一次调用时创建一个注入器并获取提供程序实例。
FormsModule 和ReactiveFormsModule 是互斥的,不应该一起使用,但这不应该影响结果。