gpt4 book ai didi

testng - 带有 Hamcrest 匹配器的 TestNG 软断言

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

我想在 TestNG 测试中使用 Hamcrest 匹配器,并专门使用软断言。我怎样才能做到这一点?我知道我可以在测试中使用 Hamcrest 的断言,例如:

assertThat(actual, containsInAnyOrder(expected));

但我不明白如何使用像这样的 TestNG 软断言方法:

SoftAssert softAssert = new SoftAssert();

与 Hamcrest 匹配器一起使用。

因为我无法像 softAssert.assertThat(...) 那样在 TestNG 的 softAssert 上调用 Hamcrest 的 assertThat

那么,将 Hamcrest 匹配器与 TestNG 一起使用的正确方法是什么?

最佳答案

据我所知,您无法直接将 TestNG 中的 SoftAssert 与 hamcrest 匹配器断言混合。

但是您可以利用 hamcrest 匹配器库中的 org.assertj.core.api.SoftAssertions 来尝试进行软断言。

javadocs对于 SoftAssertions 有一些示例。

为了完整起见,我在此处包含了 javadoc 中的代码片段。

 @Test
public void host_dinner_party_where_nobody_dies() {
Mansion mansion = new Mansion();
mansion.hostPotentiallyMurderousDinnerParty();
SoftAssertions softly = new SoftAssertions();
softly.assertThat(mansion.guests()).as("Living Guests").isEqualTo(7);
softly.assertThat(mansion.kitchen()).as("Kitchen").isEqualTo("clean");
softly.assertThat(mansion.library()).as("Library").isEqualTo("clean");
softly.assertThat(mansion.revolverAmmo()).as("Revolver Ammo").isEqualTo(6);
softly.assertThat(mansion.candlestick()).as("Candlestick").isEqualTo("pristine");
softly.assertThat(mansion.colonel()).as("Colonel").isEqualTo("well kempt");
softly.assertThat(mansion.professor()).as("Professor").isEqualTo("well kempt");
softly.assertAll();
}

如果你看一下SoftAssertions代码库,您会注意到注释说它受到 Cedric 的 blog 的启发。关于软断言。

关于testng - 带有 Hamcrest 匹配器的 TestNG 软断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52151089/

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