Я написал несколько функциональных тестов для разрабатываемой игры.Однако я пропускаю тестовые случаи, которые помогают мне утверждать об исключениях.
Я работаю с событиями как часть 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, чтобы фактически утверждать это, так как он используется с событиями, а не в качестве значения, как разбор целого числа в функцию только для строки и т. д.
Может кто-нибудь помочьВыясните, как правильно использовать Assert.Throws (или аналогичные) с NUnit?