gpt4 book ai didi

java - 如何将 Or 与 JUnit 假设一起使用

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

在 jUnit 测试用例中,我尝试使用假设来检查一个条件是否为真或另一个条件是否为真。但是,一旦某个条件成立,jUnit 将有效地停止测试。

在下面列出的示例中,如果 Reason 为 null 或者 enumValue 位于 allowedReasons EnumSet 中,我将尝试运行测试。

EnumSet 不允许其成员中存在空值,我想坚持使用 EnumSet 来模仿实际类用来验证其原因的内容。

  @RunWith(Parameterized.class)
public static class AllowedExclusionsTest
{

@Parameters
public static Iterable<EntitlementReason> data()
{
final List<EntitlementReason> data = new ArrayList<>();
data.addAll(Arrays.asList(EntitlementReason.values()));
data.add(null);
return data;
}

@Parameter(0)
public EntitlementReason reason;

private final Set<EntitlementReason> allowedReasons =
EnumSet.of(EntitlementReason.INCARCERATED, EntitlementReason.ABSENT_FROM_CANADA);

@Test
public void testAllowedExclusionReason()
{
Assume.assumeThat(reason, Matchers.isIn(allowedReasons));
Assume.assumeThat(reason, Matchers.nullValue());
final ExcludedPeriodFact test = new ExcludedPeriodFact();
test.setExclusionReason(reason);
Assert.assertEquals("getExclusionReason()", reason, test.getExclusionReason());
}
}

最佳答案

事实证明,使用 Matcher anyOf 就可以做到这一点。

@Test
public void testAllowedExclusionReason()
{
Assume.assumeThat(reason, Matchers.anyOf(Matchers.nullValue(), Matchers.isIn(allowedReasons)));
final ExcludedPeriodFact test = new ExcludedPeriodFact();
test.setExclusionReason(reason);
Assert.assertEquals("getExclusionReason()", reason, test.getExclusionReason());
}

关于java - 如何将 Or 与 JUnit 假设一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56759421/

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