是否适合使用反射来迭代成员以进行测试?

时间:2015-07-07 12:55:02

标签: java android reflection automated-tests

我有一个包含几个影响程序行为的布尔标志的类,我想测试这些标志的组合不会导致任何意外行为。由于有2 ^ n种可能的组合,我不想编写所有这些测试用例。是否适当使用反射来迭代这些标志以生成所有可能的条件?在我看来,替代方案似乎只是测试那些看起来最有可能导致问题的边缘情况,我认为这会使我预测错误的能力过高。

另外,你能告诉我Java中的内容吗?虽然我对这个想法很熟悉,但这将是我第一次使用反射。我的所有标志都有getter和setter所以它应该没关系,但它们目前由位字段支持,并且在我的测试到位之后我打算将它们转换为EnumSet s支持。

1 个答案:

答案 0 :(得分:0)

从你的问题来看,我认为你真的不需要反思来进行测试。

1)您可能需要具有属性文件/ csv / Excel以及类的布尔值的各种组合。如果您的类包含20个包含布尔值的字段,则您的Excel将包含20列和数量行将是可能的组合数。

2)编写一个util类来读取excel / csv / properties文件并动态创建目标类的对象,设置类的布尔字段以及其他字段(映射到相应的枚举)并使用此实例为您的单元测试。

3)你可以遍历行并覆盖所有可能的组合。