我想为私有变量编写单元测试。但Jasmine不允许我使用它。有人能解释我怎么做吗?
export class TestComponent implements OnInit {
private resolve;
public testPrivate() {
this.resolve(false);
}
}
it(
'should test private variable', () => {
component.testPrivate();
expect(component.resolve).toEqual(false);
});
答案 0 :(得分:7)
expect(component['resolve']).toEqual(false);
或
expect((<any>component).resolve).toEqual(false);
enter code here
但是,从技术上讲,你不应该仅仅因为它是一个类的private
成员来测试一个私有变量而且它只能在类本身内访问,如果你真的想要测试它,你必须公开它或为它公开创建getter
setter
。
顺便说一句,除非你没有在这里写完整个测试,否则你的测试对我来说没有多大意义。
因为您正在调用this.resolve(false)
,这意味着它是一个功能,那么您为什么要测试它等于false
?
编辑:
你是说这个意思吗? public testPrivate() {
this.resolve = false;
}