有没有办法自动化junit bean属性测试?

时间:2012-08-08 03:29:51

标签: java unit-testing testing junit junit4

让我们面对现实,编写bean属性测试可能是最糟糕的时间用法。但他们需要完成。

例如。如果测试String propName属性,请拨打以下电话:

testProperty(target, "propName", String.class);
testProperty(target, "propName", String.class, "expected initial");

将验证:

  • getset方法存在。
  • 如果使用预期值,则get调用assertEquals对给定值进行测试。
  • getis)/ set方法符合预期。

我可以开始编写这些实现,但我想知道是否有可用的东西来促进这一点。其他可选属性可用于验证是否允许null或使用JSR-303 bean验证来验证该字段。

4 个答案:

答案 0 :(得分:6)

有相当多的现有代码库/代码段使这更容易。在进行快速搜索时,我发现了一些有潜力的:

我见过有人采用我列出的第一个例子(很好很简单,因为它只是一个单独的类)并修改它以更好地满足他们的需求。

答案 1 :(得分:0)

如果您想手动执行,我可以想到using reflection 或者参考这个答案的公地:

junit test method for getters & setters

答案 2 :(得分:0)

创建另一个bean,使其看起来像你的测试bean。然后使用apache-commons,festAssert,hamcrest或任何其他可以使用反射进行比较的框架。不要自己写,我敢肯定它已经完成了

答案 3 :(得分:0)

更新上述javabean-tester

上面提到的(但死的)codebox / javabean-tester有active fork project看起来很不错......