我有这个类我想单元测试:
public class SomeClass
{
public void Foo()
{
Bar();
}
private void Bar()
{
Task.Factory.StartNew(() =>
{
// Do something that takes some time (e.g. an HTTP request)
});
}
}
这就是我的单元测试的样子:
[TestMethod]
public void TestFoo()
{
// Arrange
var obj = new SomeClass();
// Act
obj.Foo();
obj.Foo();
obj.Foo();
// Assert
/* I need something to wait on all tasks to finish */
Assert.IsTrue(...);
}
所以,我需要让单元测试线程等到Bar
方法中启动的所有任务都完成它们的工作,然后再开始我的断言。
重要提示:我无法改变SomeClass
我怎样才能做到这一点?