如何测试IEnumerable<;SomeClass>;MBunit中是否有SomeClass类的所有项?

如何测试IEnumerable<;SomeClass>;MBunit中是否有SomeClass类的所有项?,mbunit,Mbunit,如何测试IEnumerable在MBunit中是否包含SomeClass类的所有项 我曾经使用过VisualStudio单元测试框架,并找到了CollectionAssert.allalReinstancesoftype或其他东西来检查它 但是我如何在MBunit中做到这一点呢?我在MBunit类中没有看到任何可以帮助您的东西 你可以很容易地写你自己的虽然(未经测试) Gallio项目的首席开发人员已经为该请求打开了一个窗口。我们将实现几个专用断言:Assert.ForAll和Assert.Ex

如何测试IEnumerable在MBunit中是否包含SomeClass类的所有项

我曾经使用过VisualStudio单元测试框架,并找到了
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));
}