Unit testing 如何在测试中设置构造函数填写的私有字段?
我有一个简单的组件,它应该根据当前日期预先选择一个值:Unit testing 如何在测试中设置构造函数填写的私有字段?,unit-testing,angular,typescript,jasmine,Unit Testing,Angular,Typescript,Jasmine,我有一个简单的组件,它应该根据当前日期预先选择一个值: export class VorgangComponent implements OnInit { private _date: Moment; constructor() { this._date = utc(); } ngOnInit() { this.preselectOption(); } 没有真正的火箭科学。 我想知道如何测试这门课。我脑子里有不同的想法
export class VorgangComponent implements OnInit {
private _date: Moment;
constructor() {
this._date = utc();
}
ngOnInit() {
this.preselectOption();
}
没有真正的火箭科学。我想知道如何测试这门课。我脑子里有不同的想法,但我不知道推荐的方法:
- 约会服务(对我来说,这似乎是一种过度使用)
- 受保护的成员并使用类继承进行测试
- 受保护的方法,并使用类继承进行测试
private
和public
在Javascript中不存在,它只用于编译时检查。在运行时,它是完全可访问的。因此,您可以使用字符串acessor组件[''u date']
。唯一不好的是,您丢失了对返回值的任何intellisense和编译时检查
或者您可以忘记
private
关键字。就样式而言,\uu
已经暗示私有(可能不是编译)。但即使在角度源中,它们也不使用private
。他们只是使用。
。我想这是风格的问题。我不确定Angular选择这种风格的原因,但就我个人而言,这也是我开始接受的。你可以用sinonjs的例子来假装时间