为多个变量编写单元测试的最佳方法

时间:2013-09-09 01:36:24

标签: java unit-testing testng

我需要测试复杂对象的一些变量,例如。

Object - Person
           |->Name
           |->Address
           |      |->Street
           |      |->City
           |      |->Zip
           |      |->Apt_num
           |->Interests
           |      |->Sports
           |      |->Music
           |      |->Movies
           |->Other1
           |    |->x1
           |    |->x2   
           |->Other2

对于上面的objet我想写单元测试,它将测试Person对象的不同变量,例如。 city,zip,apt,x1等。在上面的对象中,Name,Address,Interests等也是对象和其他一些对象。亲自的子对象可以为null。我正在使用testng来编写测试。有没有一种好方法可以为上面的对象编写dataProvider并调整变量。

1 个答案:

答案 0 :(得分:1)

在纯单元测试中,您应该测试一个类,例如人员,与所有(边缘)案例的单位的其他测试方法完全分开。

完全分离非常重要,因为您要进行单元测试,因此您应该只测试一个单元 - 例如人类。

所有依赖项怎么样?你应该嘲笑他们,因为你必须100%确定他们按照你的要求工作 - 这可能意味着:

  • 他们没有被打破 - 你的同事有可能违反地址代码
  • 它们也必须针对边缘情况进行调整,例如:如果音乐兴趣可以为空,则您不能信任某人的API

有时很难从外部达到这些要求。我的意思是你不能确定某人没有提交一段不会返回null而不是地址街道的代码,或者很难将兴趣音乐设置为null,因为API不必公开此类方法。

模拟是你应该使用的正确选择。查看示例http://en.wikipedia.org/wiki/Mockito,因为您可以使用预期的行为在几个代码行中完全替换测试中组件的依赖项。