Unity 单元测试 - 检查带有参数的函数调用是否抛出异常

Nar*_*rek 2 c# unit-testing exception unity-game-engine

我统一我有一个使用错误参数调用的函数,我想确保该函数使用正确的消息抛出正确的异常。所以我的函数调用是这样的:

winDetector.DoMove(move)
Run Code Online (Sandbox Code Playgroud)

它应该抛出这样的异常:

throw new Exception("Move is not valid.");
Run Code Online (Sandbox Code Playgroud)

看起来我应该使用Assert.Throws<Exception>,但我不知道如何使用。现在介绍 Unity 和 C#。我怎样才能做到这一点?

PSAssert.Throws<Exception>这不是正确的方法。请看我下面的回答。

Nar*_*rek 5

有一种优雅的方法可以做到这一点。这是应该如何完成的:

Assert.That(() => winDetector.DoMove(move), 
                  Throws.TypeOf<Exception>());
Run Code Online (Sandbox Code Playgroud)