我在组件类的开头初始化了一个数字类型,如下所示: 我的组件类:
import { .....
@Component({
....
})
export class JhiLoginModalComponent implements OnInit {
a: number;
ngOnInit() {
this.method();
}
method() {
a=3;
}

我的测试课程:
import {...
describe('LoginComponent', () => {
let comp: ComponentClass;
let fixture: ComponentFixture<ComponentClass>;
beforeEach(async(() => {
TestBed.configureTestingModule({
............
}));
beforeEach(() => {
fixture = TestBed.createComponent(ComponnetClass);
comp = fixture.componentInstance;
....
});
//MY TEST
it ('Should print a value', async(() => {
fixture.detectChanges();
console.log('lalalalla' + comp.method.a); //It prints lalalaundefined
}));
&#13;
当我打印domElement并返回错误时返回undefined:属性 a 未定义任何类型
注射时是否出错?如何以其他方式访问组件元素?如果我稍后使用这个数字,它会说它未定义。
答案 0 :(得分:1)
ngOnInit
。当组件准备好使用时(设置输入,包括数据绑定属性),它是Angular引擎调用它。添加console.log
到ngOnInit
您将看到在测试console.log
之前尚未调用它。您需要先致电fixture.detectChanges()
。
已编辑(根据您的评论):
我刚刚意识到。您正在记录comp.method.a
,但comp.method
是一个函数,因此它没有a
属性。您应该记录comp.a
:
console.log('lalala' + comp.a);