假设我要在有这个俄罗斯方块游戏的地方进行单元测试,并且想开始游戏,什么也不做,然后等待游戏结束(这是为了获得GameOver事件):
Tetris tetris = new Tetris();
tetris.GameOver += something;
tetris.Start();
我应该如何进行测试?这可能很容易,但是我看不到该怎么做。
我唯一的想法是以下形式:
Tetris tetris = new Tetris();
tetris.GameOver += delegate() { Assert.True(); };
tetris.Start();
谢谢
最佳答案
假设tetris.Start()
是同步的,则可以使用事件处理程序向测试发出信号:
Tetris tetris = new Tetris();
bool wasRaised = false;
tetris.GameOver += delegate() { wasRaised = true; };
tetris.Start();
Assert.IsTrue(wasRaised);
如果调用是异步的,则必须同步该调用才能在测试上下文中到达
Assert
。