我想断言ICollection包含满足约束集合的项。对于Java Hamcrest,我将使用匹配器。包含任何订单(匹配器…匹配器)。也就是说,对于给定的集合,集合的每个项都将匹配匹配器中的一个匹配器。
我正努力在nUnit 3中找到一个等价物。有人存在吗?
好吧我实现了一个巧妙的答案。关键是创建一个IComparer来比较约束和对象。看起来是这样的:
/// <summary>
/// A Comparer that's appropriate to use when wanting to match objects with expected constraints.
/// </summary>
/// <seealso cref="System.Collections.IComparer" />
public class ConstraintComparator : IComparer
{
public int Compare(object x, object y)
{
var constraint = x as IConstraint;
var matchResult = constraint.ApplyTo(y);
return matchResult.IsSuccess ? 0 : -1;
}
}
然后,我可以执行以下操作:
Assert.That(actual, Is.EquivalentTo(constraints).Using(new ConstraintComparator()));
您想要的是集合等效约束,
CollectionEquivalentConstraint测试两个IEnumerable是否相等—它们是否以任何顺序包含相同的项。如果传递的实际值未实现IEnumerable,则引发异常。
int[] iarray = new int[] { 1, 2, 3 };
string[] sarray = new string[] { "a", "b", "c" };
Assert.That( new string[] { "c", "a", "b" }, Is.EquivalentTo( sarray ) );
Assert.That( new int[] { 1, 2, 2 }, Is.Not.EquivalentTo( iarray ) );
如果您需要更多详细信息,请访问https://github.com/nunit/docs/wiki/CollectionEquivalentConstraint
问题内容: 什么是Java相当于ManualResetEvent? 问题答案: 我所知道的最接近的是信号量。只需将其“许可”计数为1即可使用,获得/释放将与您从中获得的信息几乎相同。 初始化为一个的信号灯可以用作互斥锁,该信号灯最多只能使用一个许可。这通常被称为二进制信号量,因为它只有两种状态:一个许可可用,或零许可可用。当以这种方式使用时,二进制信号量具有属性(与许多Lock实现不同),该“锁”
它看起来像hamcrest(尽管看起来,还有更多)。为什么我会选择使用(除了看起来类稍微小一点之外),为什么这两个类如此相似?
我正在寻找一个Hamcrest Matcher到返回java的单元测试方法。util。可选类型。比如: 是否有任何可用的实现抛出Maven存储库?
问题内容: 我有一个Bash shell脚本,我想在其中暂停执行,直到用户按下某个键为止。在DOS中,可以使用“ pause”命令轻松完成此操作。我可以在脚本中使用等效的Linux吗? 问题答案: 做这个: 该指定它只是等待一个字符。在将其放入原始模式,这是必要的,否则,如果按类似反斜杠,它不会注册,直到你遇到下一个关键。在指定的提示,如果包含空格,必须用引号括起来。仅当您想知道他们按下了哪个键时
我该怎么做?
给定项目的或,是否有任何(或匹配器组合)将断言每个项目都匹配单个? 例如,给定此项目类型: 我想写一个断言,即一个集合中的所有项目都有一个特定的性别值。我在想这样的事情: 有没有办法不用自己编写