这个问题通常是由于当有至少一个断言失败时,SoftAssertions不会中止测试导致的。为了避免卡死,我们可以添加一个“allSatisfy”来检查所有断言是否都成功。这里是一个示例代码:
SoftAssertions softly = new SoftAssertions();
List list = Arrays.asList("apple", "banana", "mango");
softly.assertThat(list)
.as("list of fruits")
.hasSize(3)
.allSatisfy(fruit -> assertThat(fruit).isInstanceOf(String.class));
softly.assertAll();
在这个示例中,我们添加了一个.allSatisfy(fruit -> assertThat(fruit).isInstanceOf(String.class))以确保所有元素都是字符串类型,而不是其他任何类型。最后,我们在assertAll()之后调用softly.assertAll()以确保SoftAssertions正常完成,并可以避免测试卡死。