我被指派对一个 Metro 应用程序进行单元测试,该应用程序在 C# 中具有很多异步函数 (IAsyncOperation)。如何对 IAsyncOperation 函数进行单元测试,或者我们可以使用 Task 和 IAsyncOperation 函数进行测试。如果是,请给我一个例子。因为 IAsyncOperation 仅在 winRT 中工作,而 Task 在普通 c# 中工作以实现并行性
最佳答案
您可以测试返回 IAsyncOperation<T>
的方法直接地。首先基于 UnitTestLibrary (Windows Store apps)
创建一个新项目项目模板。
假设您要测试以下方法:
public class ViewModel
{
public IAsyncOperation<string> GetString()
{
//
}
}
您可以从测试类中调用它,如下所示:
[TestClass]
public class UnitTest1
{
[TestMethod]
public async Task TestMethod1()
{
var viewModel = new ViewModel();
Assert.AreEqual("result", await viewModel.GetString());
}
}
只需确保使用 async Task
而不是 void
在您的测试方法签名中。
关于c# - 在 C# 中使用 Task 测试 IAsyncOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14657158/