单元测试 属性 修饰符

Unit testing property modifier

我说的是 Typescript,但这可能是一个通用问题...

如何测试 属性 是只读的?

我的意思是,这是一种语言特性,所以看起来很明显,如果我将 属性 声明为只读,没有人可以重新分配它,因为代码不会编译,但没有任何测试,没有人向我保证我可以安全地更改代码,使 属性 可写,然后修改它... 那么,如果 属性 是可写的,我该如何编写一个失败的单元测试呢?

您是否还要测试其他属性是私有的还是 public?不要走那条路。这是一个明显的过度测试案例。

可以你写这样的测试吗?是的;使用调用 javascript 代码的纯 javascript 将您的 Typescript 代码转换为。

但是,你应该写这样的测试吗? 编号

使用 Typescript 等转译 and/or 编译语言的主要原因之一是编译器承担了部分正确性负担。具体来说,就是语言提供的保证的正确性。

坐下来享受编译器为您完成的繁重工作。

一个警告:如果您的项目混合使用 javascript 和 Typescript,那么您 可能 想考虑一下,但是花那个钱可能还是更好时间将 javascript 位重写为 Typescript。

编辑: 从测试的角度看情况:测试现在通过 并且由于回归 稍后 失败需要什么? 好吧,由于如果稍后的某些编辑修改了 readonly 属性,代码将无法编译,因此此编辑必须包括从 属性 中删除 readonly。 但是看到并拒绝了这个守卫,是什么阻止编辑删除现在也失败的测试?

所以在某种意义上,readonly修饰符测试。