【发布时间】:2009-02-27 07:44:58
【问题描述】:
我正在开发一个我想以开源方式发布的库。我已经开始为代码编写测试,我想知道我应该如何测试 .Net 对象中的属性。假设我有以下内容:
public class Person{
#region variables
private string _name = String.Empty;
private string _surname = String.Empty;
#region properties
public string Name{
get{
return _name;
}
}
public string Surname{
get{
return _surname;
}
set{
_surname = value;
}
}
}
我有两个与代码相关的问题:
- 如何对仅具有 getter 的属性(如示例中的名称)进行单元测试
- 如何使用 setter 和 getter 对属性进行单元测试(如示例中的姓氏)
我想测试这么简单的属性,因为我已经在其他代码中发现错误是 Itellinsense 执行了错误的自动完成并且属性没有返回正确的变量。
更新:
我不是在谈论示例中的简单属性,它们背后确实有一些逻辑并且很难调试。编写一个使用 setter 来测试 getter 的测试,反之亦然是不好的,因为如果失败,我将不知道应该归咎于哪个方法。我正在使用属性,因为它们被添加为公共变量,后来必须添加更多逻辑。【问题讨论】:
-
提供一个更接近您实际使用的示例。让回答更容易。
-
> “它们背后确实有一些逻辑,而且很难调试。”听起来可能需要进行一些重构,然后您可以对逻辑的特定元素进行单元测试。
标签: c# .net unit-testing testing