car*_*ter 1 c# nunit unit-testing properties readonly
我在我正在测试的类上有一个只读属性.
public string ReadOnlyProperty
{
get { return _readOnlyProperty; }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法编写一个NUnit测试来确保这个属性是只读的?我想要这样做的事实是否会让你抬起眉毛?在我看来,添加测试以确保只读属性保持只读,除非故意决定更改它们与任何其他行为一样重要.
提前感谢您的反馈.
在我看来,添加测试以确保只读属性保持只读,除非故意决定更改它们与任何其他行为一样重要.
我同意,但我敢说单元测试是错误的.原因如下:
单元测试通常用于测试代码的动态方面,即其运行时行为.另一方面,您正在寻找一种方法来测试代码的静态(编译时或设计时)方面.在我看来,在这种情况下,诸如FxCop或NDepend之类的工具更合适.(我可能错误地认为这些特殊工具是合适的,因为我自己并不了解它们.)
话虽如此,正如您已经从之前的答案中学到的,您可以使用反射来做到这一点:
typeof(SomeType).GetProperty("ReadOnlyProperty").CanWrite == false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1220 次 |
| 最近记录: |