gpt4 book ai didi

java - 数据提供者和断言

转载 作者:行者123 更新时间:2023-12-02 04:25:47 25 4
gpt4 key购买 nike

在 TestNG 上使用 DataProviders 时,我的测试方法断言将会失败,因为传入的数据导航到不同的 url。有没有办法解决这个问题,即数据仅注入(inject)到某些/特定断言的方法?

<小时/>

我不是用不同的数据测试一个场景,而是用不同的数据测试多个场景,这就是我的冲突发生的地方。

<小时/>
@DataProvider(name = "VINNumbers")
public String[][] VINNumbers() {
return new String[][] {
{"2T1BU4ECC834670"},
{"1GKS2JKJR543989"},
{"2FTDF0820A04457"}
};
}

@Test(dataProvider = "VINNumbers")
public void shouldNavigateToCorrespondingVinEnteredIn(String VIN) {
driver.get(findYourCarPage.getURL() + VIN);
Assert.assertTrue(reactSRP.dealerListingMSRPIsDisplayed());
}

断言测试页面是否显示MSRP,但并不是所有的dataproviders都会显示MSRP,所以会失败。唯一拥有它的数据提供者是第一个数组。有没有办法让数据提供者被调用到特定的断言?

最佳答案

如果根据 VIN,建议零售价是否显示( boolean 值),您可以按照提供 VIN 和预期结果的方式创建一个提供商:

@Test(dataProvider = "VINNumbers")
public void shouldNavigateToCorrespondingVinEnteredIn(String VIN, boolean isMSRPDisplayed) {
// act
// assert
assertThat(reactSRP.dealerListingMSRPIsDisplayed()).is(isMSRPDisplayed);
}

这样您最终会得到如下所示的提供商:

{
{"2T1BU4ECC834670", true},
{"1GKS2JKJR543989", false},
{"2FTDF0820A04457", true},
}

我认为这对于简单的情况是可以接受的。为了使断言更具可读性,我将向其添加一条也参数化的自定义消息。

我希望这会有所帮助。

关于java - 数据提供者和断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32210486/

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