如何模拟void方法中的异步方法?

时间:2015-12-02 10:25:20

标签: c# unit-testing async-await moq

我在视图模型中有一个void方法

public void TestMethod()
{
    AsyncMethod01();
    AsyncMethod02();
}

在void方法中,有两个异步方法叫做

async void AsyncMethod01()
{
    ServiceResponse<ObservableCollection<User>> response = await 
        Task.Factory.StartNew<ServiceResponse<ObservableCollection<User>>>(UserDetails);
}

async void AsyncMethod02()
{
    ServiceResponse<ObservableCollection<Customer>> response = await
        Task.Factory.StartNew<ServiceResponse<ObservableCollection<Customer>>>(CustDetails);
}

所以我需要使用moq

TestMethod()编写单元测试
[TestMethod]
public async Task TestMethodForViewModel()
{
    //Code
}

那么如何编写void TestMethod()的单元测试,其中包含两个异步方法。所以我需要一种方法来等待单元测试方法中的两个异步调用完成。

1 个答案:

答案 0 :(得分:0)

这对你有什么用?

[TestMethod]
public async Task TestMethodForViewModel()
{
    await AsyncMethod01();
    await AsyncMethod02();
}