gpt4 book ai didi

java - 测试软断言未按预期工作

转载 作者:行者123 更新时间:2023-12-01 16:53:38 24 4
gpt4 key购买 nike

我在面试中被问到这个测试问题。我回答这个问题是因为第一个测试将失败,第二个测试将通过。但令我惊讶的是,当我运行一个智能想法时。我可以看到两者都失败了。

对于第二次测试,预期值显示为“值”。不明白为什么?

import org.testng.annotations.Test;
import org.testng.annotations.SoftAssert;

public class SoftAssertion{

SoftAssert softAssert = new SoftAssert();

@Test
public void first(){
softAssert.assertEquals("values", "value");
softAssert.assertAll();
}

@Test
public void second(){
softAssert.assertEquals("value", "value");
softAssert.assertAll();
}

}

我使用的是testng 7.1.0

Test Run Result

最佳答案

您将 SoftAssert 创建为类成员,因此两个测试都使用同一实例进行操作,并且您在同一对象中累积软断言。当您在第二个测试中调用 assertAll() 时,第一个失败的断言已收集。现在我们开始。

因此,在对象级别创建 SoftAssert 实例是错误的。它应该在方法内创建。

但是,仍然存在一个可能的副作用:TestNG 不保证测试方法执行的顺序,因此如果 second() 测试首先执行,您将看到一个失败,一个通过.

关于java - 测试软断言未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61634075/

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