Unity 单元测试 - 检查带有参数的函数调用是不是引发异常

Posted

技术标签:

【中文标题】Unity 单元测试 - 检查带有参数的函数调用是不是引发异常【英文标题】:Unity unit tests - Check if the function call with an argument throws an exceptionUnity 单元测试 - 检查带有参数的函数调用是否引发异常 【发布时间】:2018-11-21 20:35:46 【问题描述】:

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

winDetector.DoMove(move)

它应该像这样抛出异常:

throw new Exception("Move is not valid.");

看起来我应该使用Assert.Throws<Exception>,但我不知道如何使用。现在到 Unity 和 C#。我该怎么做?

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

【问题讨论】:

How do I use Assert to verify that an exception has been thrown?的可能重复 这不是重复的。请参阅下面的答案。 【参考方案1】:

有一种优雅的方法可以做到这一点。应该这样做:

Assert.That(() => winDetector.DoMove(move), 
                  Throws.TypeOf<Exception>());

【讨论】:

以上是关于Unity 单元测试 - 检查带有参数的函数调用是不是引发异常的主要内容,如果未能解决你的问题,请参考以下文章

如何在单元测试中使用 argparse 参数调用函数?

使用闭包进行 PHP 单元测试

单元测试功能宏

检查单元测试中是不是抛出参数

什么是单元测试?如何做好单元测试?

带有函数调用的 vue.js 单元测试 v-slot