如何在测试类的仪器测试中设置顺序?

Posted

技术标签:

【中文标题】如何在测试类的仪器测试中设置顺序?【英文标题】:How to set an order in instrumented test over the Test Class? 【发布时间】:2021-05-25 10:27:02 【问题描述】:

我想设置测试类的顺序。

@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 类必须在 B Test 之前进行测试。 我怎样才能做到这一点?有可能吗?

【问题讨论】:

【参考方案1】:

首先,我建议您在测试中不要有任何依赖项。 Test A 类和 Test B 类应该彼此独立运行。 当您的应用程序增长时,这真的很有帮助。

不应该存在一个测试应该在另一个测试之前运行的条件。 只有在罕见/真实场景中,我们才应该对序列有这种依赖。

因为如果您使用与序列相关的依赖项来设计测试,那么您将很难维护您的测试用例,并且当您遵循测试驱动开发 (TDD) 时会变得很困难。

对于上述情况,请尝试使用SuiteClassesSuiteClasses 注释指定套件运行程序要包含在此套件中的测试类以及顺序。

请参考Junit TeamHERE提供的示例

【讨论】:

以上是关于如何在测试类的仪器测试中设置顺序?的主要内容,如果未能解决你的问题,请参考以下文章

单元/仪器测试 Android Gradle。仪器测试不会运行

如何在多个文件中设置mocha测试用例的执行顺序

如何在 Swift 中设置单元测试?

JUnit4 中静态内部测试类的嵌套测试设置

如何测试在视图控制器单元测试中设置私有变量的方法?

单元测试或main方法 进行单元测试时 idea检查其他类的语法是否正确的去除方法