1

私は、C# で多くの非同期関数 (IAsyncOperation) を持つメトロ アプリケーションの単体テストを行うように割り当てられました。IAsyncOperation 関数を単体テストする方法、またはテストのために IAsyncOperation 関数で Task を使用できますか。はいの場合、例を教えてください。IAsyncOperation は、通常の c# の並列処理では winRT と Task でのみ機能するため

4

2 に答える 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 に答える