我应该编写单元测试来检查对象属性的默认值吗?

Lev*_*ith 1 unit-testing

问题标题确实说明了一切,但我会尽力澄清。假设我有以下对象:

function MyObject() {
    this.isAwesome = true;
    // Other methods and property
}
var obj = new MyObject();
Run Code Online (Sandbox Code Playgroud)

现在,当针对该对象编写单元测试时,是否应该编写一个确保该isAwesome属性默认为true的测试?还是测试过于严格?

Dam*_*ack 5

仅在变量isAwesome某种程度上属于类中面向公众的部分时才编写测试。如果isAwesome只是影响类的行为,请测试该行为。

通常情况下,像这样的变量应该是类的面向公众的部分的一部分。对于干净的代码,最少需要的是变量是私有的并具有getter和setter函数。测试那些功能。

  • 测试简单的 getter 和 setter 也只是测试简单的语言结构。如果 getter 或 setter 的作用不仅仅是检索或修改值,*然后*对其进行测试。 (2认同)