繁体   English   中英

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

[英]Best way to write unit test for multiple variables

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

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

对于上述对象,我想编写单元测试,以测试Person对象的不同变量,例如。 城市,邮政编码,apt,x1等。在上面的对象中,名称,地址,兴趣等也是对象和其他一些对象。 当面的子对象可以为空。 我正在使用testng编写测试。 有没有一种好的方法可以为上述对象和调整变量编写dataProvider。

在纯单元测试中,您应该测试一种类(例如,人),该类与其他单元完全分开,并针对所有(边缘)情况测试单元的方法。

当您要进行单元测试时, 完全分离是非常重要的事情,因此您应该仅测试一个单元-例如人员类。

那么所有依赖项呢? 您应该嘲笑它们,因为您必须100%确保它们能够按照您的要求工作-这可能意味着:

  • 他们没有被破坏-您的同事有可能破坏地址的代码
  • 还必须针对极端情况进行调整,例如,如果音乐兴趣可以为空,那么您将无法信任某人的API

有时很难从外部达到这些要求。 我的意思是,您不能确定某个人不会提交一段不会返回null而不是地址的街道的代码,否则可能很难将Interest的音乐设置为null,因为API不必公开这种方法。

模拟是您应该使用的正确方法。 请看示例http://en.wikipedia.org/wiki/Mockito,因为您可以用预期的行为用几行代码完全替换测试中组件的依赖关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM