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的例子来假装时间