对只调用其他方法的简单方法进行单元测试

时间:2015-10-25 08:53:32

标签: c# unit-testing testcase test-coverage

如果公共方法只调用外部方法并且不包含特殊逻辑,我应该在其上添加单元测试吗?

下面的方法只调用外部方法并使用返回值来构造学生对象。

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()应该没有问题。

我发现很难决定是否应该对方法进行测试。您是否也可以就此问题推荐一些外部资源(例如网站,图书,博客)?

谢谢。

3 个答案:

答案 0 :(得分:0)

您需要在测试中指定GetStudent行为。例如,在虚幻ID的情况下会发生什么? exeption / null这应该在测试中描述。你需要检查最终的objct:can / cant name为null,can / cant地址为null。这将是GetStudent函数的好文档

答案 1 :(得分:0)

答案是"主要是基于意见的"但通常情况下,您可以测试此方法并检查:

  1. 方法不会返回null
  2. student类的所有字段都已设置
  3. 您应该模拟GetNameGetAddress方法并检查是否使用正确的参数调用它们
  4. 所以,这个例子非常简单,是的。但是,也许在将来,你会在这个方法中有一些逻辑,你需要确保一切正常。

答案 2 :(得分:0)

我的理念是,我总是对暴露的方法进行单元测试,无论它们多么微不足道。原因是,如果其他人打算使用此代码,并且他们决定要更改内容,则没有质量保证他们的新代码会破坏系统,除非您有单元测试。单元测试是为了确保代码具有良好的质量,并确保其他开发人员不会在本质上破坏系统。