我如何断言用switch语句(NUnit)引发的异常

时间:2019-06-12 15:00:39

标签: unit-testing testing

我已经为自己开发的游戏编写了许多功能测试。但是,我缺少可以帮助我断言异常的测试用例。

我正在将事件作为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(或类似方法)吗?

0 个答案:

没有答案