java - junit 数据驱动测试指定何时提供新数据

标签 java selenium junit junit4

我正在编写一些 webdriver 测试来测试网站的功能,现在我需要让它们成为数据驱动的。我正在使用 junit 来执行它们。测试流程是:做登录,做test1,做注销。做登录,做test2,做注销等。

我需要的是像这样使两个类数据驱动(登录和测试类),获取第一次登录数据,对所有数据变化进行所有测试,获取第二次登录数据,对所有数据进行所有测试.. .等等

所以我有调用测试类的主类:

@RunWith(Suite.class)
@Suite.SuiteClasses({

        Test1.class,
        Test2.class,
        Test3.class
})

public class MainTestSuite {
.. skipped.

测试类如下:

public class Test1 {
    private static final Logger Log = LogManager.getLogger(Test1.class);

    @Rule
    public TestRules testRules = new TestRules();

    @Test
    public void testSomething() throws Exception { // test code
    }

    @Test
    public void testSomethingElse() throws Exception { // test code
    }

...跳过。

现在登录和注销由实现 TestWatcher 的 TestRules 调用:

public class TestRules extends TestWatcher {

    @Override
    protected void starting(Description description) {
     // do login
    }

    @Override
    protected void finished(Description description) {
     // do logout
    }

我一直在研究 easytest 模块 https://github.com/EaseTech/easytest-core ,但是将参数提供给登录测试,它首先循环遍历所有这些,这不是我需要的。您是否看到使用我已有的结构来解决我的问题。

最佳答案

我使用的一个常见策略是创建一个可以被测试读取的属性(或 json)文件。

在创建测试时使用此方法,即创建一个用户,您可以将登录信息保存到属性文件中,并与其余测试一起读取。

Here是关于属性的文档。

关于java - junit 数据驱动测试指定何时提供新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655767/

相关文章:

java - 停止方法执行直到另一个 Activity 完成

java - 是否可以从两个不同的 Servlet 同时访问同一个数据库?

java - SpringJDBC模板的实体或DTO方法?

python - Selenium 找不到元素

python - 用 scrapy 解决 reCAPTCHA

java - 如何使用ONOS Controller 获取每个交换机/设备的流量统计?

python - 如何修复尝试使用 Selenium 查找元素时引发的 TypeError?

java - 如何模拟从抽象类继承的 protected 子类方法?

java - JUnit 5 : How to assert an exception is thrown?

java - 如何在单元测试(junit)中管理巨大的类和重构