Chr*_*Zou 2 java android unit-testing robolectric
我正在使用 Robolectric 进行单元测试。我有一个测试类 say MainActivityTest,它有几种测试方法:
@RunWith(...)
@Config(...)
public class MainActivityTest {
@Test
public void testMethod1() {
//...
}
@Test
public void testMethod2() {
//...
}
// other test methods
}
Run Code Online (Sandbox Code Playgroud)
我想在执行任何测试方法之前只执行一次方法(init方法),并在执行所有测试方法之后执行另一个方法。我怎样才能做到这一点?我知道我可以通过在构造函数中调用init方法来解决第一个问题,但是如何解决第二个问题呢?我知道我可以子类化我的应用程序类并使用该应用程序,但这对我来说有点尴尬,因为我使用的是 AndroidAnnotations 并且我使用的真正应用程序类是最终的,我只想在这个测试类中执行此操作,而不是所有测试类。我想知道是否有更好的方法来做到这一点。
你想要@BeforeClass和@AfterClass。
请注意,它们注释的方法必须是静态的。
看:
http://junit.sourceforge.net/javadoc/org/junit/BeforeClass.html http://junit.sourceforge.net/javadoc/org/junit/AfterClass.html
例如:
@BeforeClass
public static void beforeEverything() {
// runs just once before all tests
}
@Before
public void setup() {
// runs before every test
}
@After
public void breakdown() {
// runs after every test
}
@AfterClass
public static void afterEverything() {
// runs just once after all the tests
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2481 次 |
| 最近记录: |