我有一个类需要进行单元测试:
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
。
我该怎么做?