1

如果公共方法只调用外部方法并且内部没有特殊逻辑,我应该对其添加单元测试吗?

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

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

我发现决定是否应该对方法进行测试是相当困难的。您能否在这方面推荐一些外部资源(例如网站、书籍、博客)?

谢谢你。

4

3 回答 3

0

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

于 2015-10-25T08:58:59.707 回答
0

答案是“主要基于意见”,但通常,您可以测试此方法并检查:

  1. 方法不返回null
  2. student设置类的所有字段
  3. 您应该模拟GetNameGetAddress方法并检查它们是否都以正确的参数调用

所以,这个例子很简单,是的。但是,也许在将来,你会在这个方法中有一些逻辑,你需要确保一切正常。

于 2015-10-25T08:59:06.860 回答
0

我的理念是,我总是对公开的方法进行单元测试,无论它们多么微不足道。原因是如果其他人将要编写此代码,并且他们决定要更改某些内容,则没有质量保证可以保证他们的新代码会破坏系统,除非您有单元测试。单元测试是为了确保代码质量好,并确保其他开发人员不会固有地破坏系统。

于 2015-10-25T08:59:49.737 回答