HJ3-11.1 参数化用例

  • 为每个功能创建一个独立的模块,将不同的功能独立开,尽量与其它的 case 隔离开,这样其它的 case 就不会被不同的 setup,teardown 方法影响,例如:创建 SearchPage.java。通过 Junit5 的参数化注解来帮我们实现数据的构造。

  • 依赖导入

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-params</artifactId>
  <version>5.4.2</version>
  <scope>test</scope>
</dependency>
   @ParameterizedTest
    @MethodSource("byNameGetPrice")
    public void priceTest(String name, String code, double price){
        driver.findElement(By.id("com.xueqiu.android:id/home_search")).click();
        driver.findElement(By.id("com.xueqiu.android:id/search_input_text")).sendKeys(name);
        driver.findElement(By.xpath("//*[@text='" + code + "'")).click();
        System.out.println(driver.findElement(By.xpath("//*[@text='" + code + "']/../../..//*[@resource-id='com.xueqiu.android:id/current_price']")).getText());
        String realPrice = driver.findElement(By.xpath("//*[@text='\" + code + \"']/../../..//*[@resource-id='com.xueqiu.android:id/current_price']")).getText();
        driver.findElement(By.id("com.xueqiu.android:id/aciton_close")).click();
        assertThat(parseDouble(realPrice), greaterThan(price));


    }

    private static Stream<Arguments> byNameGetPrice(){
        return Stream.of(Arguments.of("alibaba", "", 210d),
                Arguments.of("wangyi", "NTES", 250d),
                Arguments.of("baidu", "BAIDU", 180d),
                Arguments.of("google", "GOOGL", 200d)
                );
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。