如何测试IEnumerable<;SomeClass>;MBunit中是否有SomeClass类的所有项?
如何测试IEnumerable在MBunit中是否包含SomeClass类的所有项 我曾经使用过VisualStudio单元测试框架,并找到了如何测试IEnumerable<;SomeClass>;MBunit中是否有SomeClass类的所有项?,mbunit,Mbunit,如何测试IEnumerable在MBunit中是否包含SomeClass类的所有项 我曾经使用过VisualStudio单元测试框架,并找到了CollectionAssert.allalReinstancesoftype或其他东西来检查它 但是我如何在MBunit中做到这一点呢?我在MBunit类中没有看到任何可以帮助您的东西 你可以很容易地写你自己的虽然(未经测试) Gallio项目的首席开发人员已经为该请求打开了一个窗口。我们将实现几个专用断言:Assert.ForAll和Assert.Ex
CollectionAssert.allalReinstancesoftype
或其他东西来检查它
但是我如何在MBunit中做到这一点呢?我在MBunit类中没有看到任何可以帮助您的东西 你可以很容易地写你自己的虽然(未经测试) Gallio项目的首席开发人员已经为该请求打开了一个窗口。我们将实现几个专用断言:
Assert.ForAll
和Assert.Exists
。它们应该在Gallio/MbUnit的下一个版本(v3.1)中提供,但是您可以在几天内下载每日构建,从而更快地使用它们(请继续关注)
编辑:
从开始,您可以使用Assert.ForAll(IEnumerable,Predicate)
你是说“键入SomeClass或派生类”吗?因为IEnumerable中不能有SomeOtherClass,除非SomeOtherClass是从SomeClass派生的。
public class MyCollectionAssert
{
public void CollectionAssert(IEnumerable source, Predicate<object> assertion)
{
foreach(var item in source)
{
Assert.IsTrue(assertion(item));
}
}
public void AllAreInstancesOfType(IEnumerable source, Type type)
{
return CollectionAssert(source, o => o.GetType() == type);
}
}
MyCollectionAssert.AllAreInstancesOfType(myList, typeof(SomeClass));
[Test]
public void AllMyObjectsShouldBeStrings()
{
var list = GetThemAll();
Assert.ForAll(list, x => x.GetType() == typeof(string));
}