Android上的参数化检测测试

时间:2013-05-08 18:53:52

标签: android junit instrumentation spoon

我正在尝试为特定ActivityInstrumentationTestCase2编写批量检测测试(使用Activity),每次测试运行时我都会更改意图。我可以通过一次测试来完成这项工作,然后循环停止并使用新意图重新启动Activity,但这不是我想要的。一个原因是它们确实应该是单独的测试运行。另一个原因是,我在测试完成时使用Spoon生成报告,报告正确地认为我只运行了一次测试。

我想要的是将单个测试视为可能无限多的测试,并在每次测试运行时将数据传递给测试。

不幸的是,您无法使用Theories,因为它会导致RunmentationException,其中InstrumentationTestRunner无法找到我的测试。有人有运气吗?

2 个答案:

答案 0 :(得分:0)

你总是可以创建一个“测试”意图。为了模拟应用程序的重新启动,请创建一个方法或多个方法来重置测试之间的所有静态变量。然后,您可以使用

在应用程序内部的测试意图内测试类
assert("value", MyClass.myMethod);
resetStatics();
assert(true, MyClass,myMethod);
resetStatics();

我不知道这对你有多大帮助,如果有的话,但这就是我开始编写自己的测试的方法。

答案 1 :(得分:0)

我最近发现您可以向测试类添加public static Test suite()方法,当您只运行此单个测试类时,InstrumentationTestRunner将运行此方法返回的Test。这很有用,因为suite()可以显式调用TestCase的任何构造函数,包括带参数的构造函数。