我已经为自己开发的游戏编写了许多功能测试。但是,我缺少可以帮助我断言异常的测试用例。
我正在将事件作为StateMachine的一部分进行处理,该事件在不同的游戏状态之间进行切换。我想断言,使用未实现的案例创建事件会调用引发异常的默认值。
我一直在阅读有关Assert.Nunit的信息,但是当我使用事件时,我似乎无法弄清楚如何正确使用和实现此方法。
下面是我如何在测试用例中调用事件的示例:
[Test]
public void TestExceptionIsThrown() {
Method().RegisterEvent(
GameEventFactory<object>.CreateGameEventForAllProcessors(
GameEventType.GameStateEvent,
this,
"CHANGE_STATE", // this is the message processed with Method()
"", ""));
Method().ProcessEventsSequentially();
// assert on exception
}
在我的方法内,发现以下默认情况:
default: throw new NotImplementedException($"Event Type: {gameEvent.Message} is not supported");
但是我似乎无法弄清楚如何使用Assert.Throw对此进行实际断言,因为它与事件一起使用,而不是作为值使用,例如将整数解析为仅字符串的函数等。
任何人都可以帮助弄清楚如何在NUnit中正确使用Assert.Throws(或类似方法)吗?