重複の可能性:
NUnit で非同期メソッドをテストし、最終的には別のフレームワークでテストするにはどうすればよいですか?
私が知りたいのは、C# 単体テストで、非同期メソッドが例外をスローすることをどのようにアサートできるかということです。Visual Studio 2012 で非同期単体テストを作成することはできますがMicrosoft.VisualStudio.TestTools.UnitTesting
、例外をテストする方法がわかりません。xUnit.net もこの方法で非同期テスト メソッドをサポートしていることは知っていますが、そのフレームワークはまだ試していません。
私が言いたいことの例として、次のコードはテスト中のシステムを定義しています:
using System;
using System.Threading.Tasks;
public class AsyncClass
{
public AsyncClass() { }
public Task<int> GetIntAsync()
{
throw new NotImplementedException();
}
}
このコード スニペットは、 のテストTestGetIntAsync
を定義しAsyncClass.GetIntAsync
ます。GetIntAsync
これは、例外をスローするアサーションを達成する方法についての入力が必要な場所です。
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Threading.Tasks;
[TestClass]
public class TestAsyncClass
{
[TestMethod]
public async Task TestGetIntAsync()
{
var obj = new AsyncClass();
// How do I assert that an exception is thrown?
var rslt = await obj.GetIntAsync();
}
}
必要に応じて、Visual Studio 以外の関連するユニット テスト フレームワーク (xUnit.net など) を自由に使用してください。