有没有可能让@规则在任何声明的全局变量之前构建?我试过:
@Rule @Before // This Causes an Error val rule = SomeAndroidComposeTestRule() private val globalVariable = GlobalVariableClass()
我需要先运行规则,因为我收到一个错误,即我正在使用该globalVariable测试的Composable需要测试规则。调试时出现了各种错误。是否存在允许先运行@规则的@?
mxg2im7a1#
如果代码片段中的这五行是来自测试类的连续五行,那么globalVariable就不是全局变量,而是测试类的属性。无论如何,没有办法强制某个@Rule在属性初始化器之前执行。因此,你需要延迟初始化,比如到一个@Before注解的函数中:
globalVariable
@Rule
@Before
@Rule val rule = SomeAndroidComposeTestRule() private lateinit var globalVariable: GlobalVariableClass @Before fun setUp() { globalVariable = GlobalVariableClass() }
1条答案
按热度按时间mxg2im7a1#
如果代码片段中的这五行是来自测试类的连续五行,那么
globalVariable
就不是全局变量,而是测试类的属性。无论如何,没有办法强制某个
@Rule
在属性初始化器之前执行。因此,你需要延迟初始化,比如到一个@Before
注解的函数中: