एक lambda
async
संशोधक के साथ चिह्नित के साथ निम्न अतुल्यकालिक xUnit.net
परीक्षण रिपोर्टिंग है कि कोई अपवाद उत्पन्न हुआ था द्वारा विफल रहता है:xUnit .net के Assert में कार्य द्वारा फेंक दिया अपवादों को कैसे संभालें। <T>?
[Theory, AutoWebData]
public async Task SearchWithNullQueryThrows(
SearchService sut,
CancellationToken dummyToken)
{
// Fixture setup
// Exercise system and verify outcome
Assert.Throws<ArgumentNullException>(async() =>
await sut.SearchAsync(null, dummyToken));
// Teardown
}
यकीन है कि एक ArgumentNullException
वास्तव में फेंक दिया जाता है कि मैं स्पष्ट रूप से एक try-catch
ब्लॉक इस्तेमाल किया बनाने के लिए। यह काम किया, लेकिन जिसके परिणामस्वरूप कोड (पहले टेस्ट की तुलना में) साफ नहीं है:
[Theory, AutoWebData]
public async Task SearchWithNullQueryThrows(
SearchService sut,
CancellationToken dummyToken)
{
// Fixture setup
var expected = typeof(ArgumentNullException);
Type actual = null;
// Exercise system
try
{
await sut.SearchAsync(null, dummyToken);
}
catch (ArgumentNullException e)
{
actual = e.GetType();
}
// Verify outcome
Assert.Equal(expected, actual);
// Teardown
}
क्यों lambda
साथ Assert.Throws<T>
async
संशोधक के साथ चिह्नित विफल रहता है?
यह एक ज्ञात समस्या है: http://xunit.codeplex.com/workitem/9799 – DaveShaw
+1 यह ऐसा लगता है कि स्नैपशॉट '03e3be9a6781' में स्नैपशॉट' 16883cb2351f' से पहले है जहां रिलीज '2.0.0-अल्फा' जुड़ा हुआ है। हालांकि यह अभी भी NuGet पैकेज प्रबंधक के साथ समाधान अद्यतन करने के बाद काम नहीं करता है। –