如何在测试 Class 上设置仪器测试的顺序?
How to set an order in instrumented test over the Test Class?
我想通过测试设置订单 Class。
@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class ATest {
@Test
fun test0000()
@Test
fun test0001()
}
@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class BTest {
@Test
fun test0002()
@Test
fun test0003()
}
我想测试 ATest.test0000 -> ATest.test0001 -> BTest.test0002 -> BTest.test0003
因为ATest class必须在B Test之前进行测试。
我怎样才能做到这一点?可能吗?
首先,我建议您在测试中不要有任何依赖项。
即 Test A
class 和 Test B
class 应该 运行 彼此独立。
当您的应用程序增长时,这真的很有帮助。
不应该有一个测试应该 运行 在另一个测试之前的条件。
只有在 罕见/真实 情况下,我们才应该对序列有这样的依赖性。
因为如果你用序列相关依赖设计你的测试,那么你将很难维护你的测试用例,并且当你遵循测试驱动开发(TDD)时会变得困难。
对于上述情况,请尝试使用SuiteClasses
。
SuiteClasses
注释指定套件 运行 将哪些测试 class 包含在该套件中以及以何种顺序包含。
请参考Junit团队提供的示例HERE
我想通过测试设置订单 Class。
@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class ATest {
@Test
fun test0000()
@Test
fun test0001()
}
@RunWith(AndroidJUnit4::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class BTest {
@Test
fun test0002()
@Test
fun test0003()
}
我想测试 ATest.test0000 -> ATest.test0001 -> BTest.test0002 -> BTest.test0003
因为ATest class必须在B Test之前进行测试。 我怎样才能做到这一点?可能吗?
首先,我建议您在测试中不要有任何依赖项。
即 Test A
class 和 Test B
class 应该 运行 彼此独立。
当您的应用程序增长时,这真的很有帮助。
不应该有一个测试应该 运行 在另一个测试之前的条件。
只有在 罕见/真实 情况下,我们才应该对序列有这样的依赖性。
因为如果你用序列相关依赖设计你的测试,那么你将很难维护你的测试用例,并且当你遵循测试驱动开发(TDD)时会变得困难。
对于上述情况,请尝试使用SuiteClasses
。
SuiteClasses
注释指定套件 运行 将哪些测试 class 包含在该套件中以及以何种顺序包含。
请参考Junit团队提供的示例HERE