如果公共方法只调用外部方法并且不包含特殊逻辑,我应该在其上添加单元测试吗?
下面的方法只调用外部方法并使用返回值来构造学生对象。
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()将返回有效结果(例如非null),因此GetStudent()应该没有问题。
我发现很难决定是否应该对方法进行测试。您是否也可以就此问题推荐一些外部资源(例如网站,图书,博客)?
谢谢。
答案 0 :(得分:0)
您需要在测试中指定GetStudent行为。例如,在虚幻ID的情况下会发生什么? exeption / null这应该在测试中描述。你需要检查最终的objct:can / cant name为null,can / cant地址为null。这将是GetStudent函数的好文档
答案 1 :(得分:0)
答案是"主要是基于意见的"但通常情况下,您可以测试此方法并检查:
null
student
类的所有字段都已设置GetName
和GetAddress
方法并检查是否使用正确的参数调用它们所以,这个例子非常简单,是的。但是,也许在将来,你会在这个方法中有一些逻辑,你需要确保一切正常。
答案 2 :(得分:0)
我的理念是,我总是对暴露的方法进行单元测试,无论它们多么微不足道。原因是,如果其他人打算使用此代码,并且他们决定要更改内容,则没有质量保证他们的新代码会破坏系统,除非您有单元测试。单元测试是为了确保代码具有良好的质量,并确保其他开发人员不会在本质上破坏系统。