如何在 robolectric 测试中添加一些一次性启动代码
How to add some one time initiation code in robolectric tests
如何在 robolectric Android 测试中添加一些一次性启动代码。
我们可以添加一些带有 @Before 注释的方法,这将 运行 在 class 运行 的测试之前,但是我们可以添加一些在任何测试之前执行的代码代码被执行,在 Android robolectric.
解决方案 #1
您可以使用继承或组合。例如。你可以创建 TestBase
class:
class TestBase {
@Before
protected setUp() {
// code for all tests
}
}
然后您的测试可以从中派生出来:
@RunWith(RobolectricTestRunner.class)
class SpecificTest extends TestBase {
...
}
解决方案 #2
您还可以创建一些实用程序 class,其中包含方法中的可重复代码,并在测试中的每个 setUp()
方法中调用此方法。然后,您将不需要继承。示例:
class Util {
private Util() {}
public static setUp() {
// code for all tests
}
}
你的测试可能看起来像这样:
@RunWith(RobolectricTestRunner.class)
class SpecificTest {
@Before
public setUp() {
Util.setUp();
}
}
使用 JUnit 的 @BeforeClass 注释。
class Test {
@BeforeClass
public static void doOnce()
//Do once before any test case is run.
}
}
如何在 robolectric Android 测试中添加一些一次性启动代码。
我们可以添加一些带有 @Before 注释的方法,这将 运行 在 class 运行 的测试之前,但是我们可以添加一些在任何测试之前执行的代码代码被执行,在 Android robolectric.
解决方案 #1
您可以使用继承或组合。例如。你可以创建 TestBase
class:
class TestBase {
@Before
protected setUp() {
// code for all tests
}
}
然后您的测试可以从中派生出来:
@RunWith(RobolectricTestRunner.class)
class SpecificTest extends TestBase {
...
}
解决方案 #2
您还可以创建一些实用程序 class,其中包含方法中的可重复代码,并在测试中的每个 setUp()
方法中调用此方法。然后,您将不需要继承。示例:
class Util {
private Util() {}
public static setUp() {
// code for all tests
}
}
你的测试可能看起来像这样:
@RunWith(RobolectricTestRunner.class)
class SpecificTest {
@Before
public setUp() {
Util.setUp();
}
}
使用 JUnit 的 @BeforeClass 注释。
class Test {
@BeforeClass
public static void doOnce()
//Do once before any test case is run.
}
}