【发布时间】:2015-10-25 08:53:32
【问题描述】:
如果公共方法只调用外部方法,内部不包含特殊逻辑,是否应该在其上添加单元测试?
下面的方法只调用外部方法,使用返回值构造一个学生对象。
public student GetStudent(int ID){
var n = GetName(ID);
var a = GetAddress(ID);
return new student{
name = n;
address = a;
}
}
如果我已经对 GetName() 和 GetAddress() 方法进行了单独的单元测试,我还需要对 GetStudent() 方法进行单元测试吗?
由于测试已经确保 GetName() 和 GetAddress() 将返回有效结果(例如,不为空),因此 GetStudent() 应该相应地没问题。
我发现决定是否应该对方法进行测试是相当困难的。您能否在这方面也推荐一些外部资源(例如网站、书籍、博客)?
谢谢。
【问题讨论】:
-
理想情况下,是的。测试是面向未来的代码,而不是按原样测试。如果
GetStudent更改其逻辑以由另一个开发人员返回name = n.ToLower(),从而破坏多个东西怎么办? -
除了@Rob 的回答——如果您使用
student类公开学生数据,您是否需要公开GetName和GetAddress?
标签: c# unit-testing testcase test-coverage