我被指派对一个 Metro 应用程序进行单元测试,该应用程序在 c# 中有很多异步函数 (IAsyncOperation)。如何对 IAsyncOperation 函数进行单元测试,或者我们可以使用带有 IAsyncOperation 函数的 Task 进行测试。如果可以,请举个例子。因为 IAsyncOperation 仅适用于 winRT 和普通 c# 中的 Task 以实现并行
问问题
3135 次
2 回答
3
您可以测试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
于 2013-02-02T06:04:25.770 回答
1
您可以使用该IAsyncOperation<T>.StartAsTask()
方法生成一个Task<T>
对应的异步操作。
这个 StackOverflow 问题可能会有所帮助:Task<> 和 IAsyncOperation<> 之间有什么区别
于 2013-02-02T00:26:19.767 回答