如何测试列表在单元测试中的排序?

时间:2015-10-27 18:26:49

标签: c# unit-testing moq

我有一个需要测试的方法需要IEnumerable<T>。此方法需要以特定顺序对此枚举执行一组操作。

(为简洁起见,我简化了功能。)

public void TestMe(IEnumerable<IObject> objects) {
  foreach (var obj in objects.OrderBy(x => x.Priority)) {
    DoSomethingWithObject(obj);
    DoSomethingElseWithObject(obj);
  }
}

private DoSomethingWithObject(IObject obj) { }
private DoSomethingElseWithObject(IObject obj) { }

如何在DoSomethingWithObjectDoSomethingElseWithObject为私有时确保以正确的顺序执行操作的测试?

1 个答案:

答案 0 :(得分:2)

TestMe的结果是什么?调用TestMe时调用者会看到什么?为什么他会把这种方法称为第一名? 他想要完成什么?

这些是您可能想要通过单元测试来回答的问题。实现细节(如私有方法)无关紧要。重要的是外界如何看待你的方法

如果您的方法更改某些状态IObject,请测试这些更改实际上是。它就这么简单。