NUnit 3 にアップグレードしたばかりですが、単体テストに合格するのに問題があります。
[Test]
public void GetSomethingAsync_CallsConverter()
{
int id = 123;
Assert.Catch<NullReferenceException>(
async () => await _repository.GetSomethingAsync(id));
_fooMock.Verify(f => f.Bar(id), Times.Once);
}
NUnitは私にこのエラーを与えます:
System.ArgumentException : 'async void' メソッドはサポートされていません。代わりに 'async Task' を使用してください
Assert.Throws
次のように変更することで、合格することができました。
Assert.Throws<NullReferenceException>(
async () => await _repository.GetSomethingAsync(id));
//to
Assert.That(
async () => await _repository.GetSomethingAsync(id),
Throws.InstanceOf<NullReferenceException>());
しかし、 に相当するものはありませんAssert.Catch
。では、非同期メソッドで
はどのように使用すればよいのでしょうか?Assert.Catch