gpt4 book ai didi

java - 测试类组织

转载 作者:行者123 更新时间:2023-11-28 21:29:17 24 4
gpt4 key购买 nike

我正在Android项目的测试模块中编写测试类,特别是我正在编写一些功能测试。现在我处于这样一种情况,我看到我正在编写的很多代码应该是可重用的,现在我更好地解释这种情况。让我们考虑一个注册过程的测试类。现在我有一个 SignUpTest 类,它有一些测试方法和一些辅助方法,称为

reach<name-of-the-page>Page()

在该方法的名称中完成注册直到页面。此方法未经过测试,因为它们使用正确的数据填充了注册过程的页面,未执行任何类型的测试。

我的测试看起来像:

test<name-of-the-page>Page() {
reach<name-of-the-page>Page()
Some tests
}

现在我的情况是,注册测试(取决于我要测试测试或登台的环境)在其中一些方法中应该有所不同,特别是在某些到达方法中。在您看来,哪种类的最佳组织方式可以避免代码冗余?除了几个方法之外,我绝对不想用几乎相同的代码创建两个类。我读到继承不是测试用例组织中的最佳实践。

最佳答案

我有类似的情况。我正在使用 Espresso for Android 2.0 测试自动化框架。我做了什么 - 我创建了抽象主测试类并将可重用方法放入其中:

    @RunWith(AndroidJUnit4.class)
public abstract class MainTest<T extends Activity> extends
ActivityInstrumentationTestCase2<T> {

public MainTest(Class<T> activityClass) {
super(activityClass);
}

@Before
protected void setUp() {
super.setUp();
}

//put methods you are going to reuse in your test classes here

@After
public void tearDown() {
super.tearDown();
}
}

然后只需在您的测试类中扩展 MainTest.java:

    @RunWith(AndroidJUnit4.class)
public class TestLogin extends MainTest<LoginActivity> {

public TestLogin() throws ClassNotFoundException {
super(LoginActivity.class);
}

@Before
public void setUp() throws Exception{
super.setUp();
}

@Test
public void testLoginUser(){
//do your test reuse methods from MainTest class
}

@After
public void tearDown() {
super.tearDown();
}
}

祝你好运。

关于java - 测试类组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29273509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com