我有一个需要测试的方法需要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) { }
如何在DoSomethingWithObject
和DoSomethingElseWithObject
为私有时确保以正确的顺序执行操作的测试?
答案 0 :(得分:2)
TestMe
的结果是什么?调用TestMe
时调用者会看到什么?为什么他会把这种方法称为第一名? 他想要完成什么?
这些是您可能想要通过单元测试来回答的问题。实现细节(如私有方法)无关紧要。重要的是外界如何看待你的方法。
如果您的方法更改某些状态IObject
,请测试这些更改实际上是。它就这么简单。