当前位置: 首页 > 知识库问答 >
问题:

在AssertJ中测试一个事物是否成立

郑波
2023-03-14
assertThat(list, either(contains(Tags.SWEETS, Tags.HIGH))
    .or(contains(Tags.SOUPS, Tags.RED)));

共有1个答案

柯易安
2023-03-14

编辑:

由于3.12.0 AssertJ提供SatisfieSanyOf,成功是给定断言成功之一,

assertThat(list).satisfiesAnyOf(
    listParam -> assertThat(listParam).contains(Tags.SWEETS, Tags.HIGH),
    listParam -> assertThat(listParam).contains(Tags.SOUPS, Tags.RED)
);

原文答案:

Set<String> goodTags = newLinkedHashSet("Fine", "Good");
Set<String> badTags = newLinkedHashSet("Bad!", "Awful");
Set<String> tags = newLinkedHashSet("Fine", "Good", "Ok", "?");

// contains is statically imported from ContainsCondition
// anyOf succeeds if one of the conditions is met (logical 'or') 
assertThat(tags).has(anyOf(contains(goodTags), contains(badTags)));
import static org.assertj.core.util.Lists.newArrayList;    
import java.util.Collection;    
import org.assertj.core.api.Condition;

public class ContainsCondition extends Condition<Iterable<String>> {
  private Collection<String> collection;

  public ContainsCondition(Iterable<String> values) {
    super("contains " + values);
    this.collection = newArrayList(values);
  }

  static ContainsCondition contains(Collection<String> set) {
    return new ContainsCondition(set);
  }

  @Override
  public boolean matches(Iterable<String> actual) {
    Collection<String> values = newArrayList(actual);
    for (String string : collection) {
      if (!values.contains(string)) return false;
    }
    return true;
  };
}
 类似资料:
  • 我正在编写集成测试,我想使用事务范围。我们使用EF和带有上下文的存储库。 编辑在评论中我被要求包括更多的代码,然而,我认为没有必要回答我的问题。

  • 我如何测试任何或或中的键? Python中有一些短而简单的方法吗? 有两把钥匙,我可以用 我怎么能用三把钥匙做同样的事?

  • 假设我有两个数组,和,其中是的子集: 我想返回如下数组: 如果只是一个数字,那就足够简单了(),但我尝试了y中的等效

  • 男面试官,挺困倦的,基本没问项目,全是八股 -自我介绍 -在项目中遇到什么印象深刻的困难,怎么解决的 -技术栈是什么(说python和java,开始问java) -一栋楼四部电梯,有18层,怎么做测试工作? -Java有哪些集合类,各自有什么特点 -Java里如何实现多线程 -索引有什么劣势 -MySQL常见索引 -什么情况下索引失效;如何判断是否使用了索引 -MySQL有哪些锁 -某某锁是做什么

  • 面试官不错,很友好说话很舒服,但这场面试整体给我的感觉是kpi,问的简单且重复度有点高 1.自我介绍 2.为什么做测试 3.接口测试出现异常如何定位 4.深拷贝浅拷贝 5.a==b和a is b 6.遍历链表的关键字 7.事务四大特性 8.脏读的隔离级别 9.sql查询 10.tcp udp 11.如何检查异常 12.项目负责人如何保证项目进度以及把控风险 13.出现bug和开发沟通 14.服务器