비동기 메서드에서 발생하는 예외를 주장하려고합니다.
아쉽게도이 주장은 작동하지 않습니다.단위 테스트 비동기 메서드에서 throwing 예외
디버크를 통해 throw new Exception(...)
이 SaveCategoriesAsync(...)
메서드에서 호출되었음을 확인했습니다.
Action
의 메서드는 일반적으로 단위 테스트에서 작동하지만 비동기에서는 작동하지 않는 것으로 보입니다.
내가 프레임 워크와 FluentAssertions 주장 프레임 워크로 조롱으로 FakeItEasy을 사용하고 있습니다.
[TestMethod]
public void SaveCategoriesAsync_When_Then()
{
A.CallTo(() => this.articleRepository.GetArticles(A<IList<long>>._)).Returns(new List<ArticleModel>());
Action action = async() => await this.testee.SaveCategoriesAsync(new List<int>());
action.ShouldThrow<Exception>();
}
예외를 주장 할 수있게하려면 무엇을 변경해야합니까? 대답은 실제로 내가 뭘하려 매우 유사 미리
다른 스레드에서 예외를 catch 할 수 없습니다. ShouldThrow() 메서드가 특별한 작업을 수행하지 않으면 작동하지 않습니다. 어설 션 프레임 워크가 비동기 액션을 통해 예외를 감지하거나 직접 작성하는 방법을 제공하는지 확인하십시오. – helb