第一次TDD测试没有断言/预期异常.这值得么?

dev*_*ium 12 c# java tdd unit-testing

假设我开始用TDD做游戏.这是一个很好的第一次测试吗?

[TestMethod]
public void Can_Start_And_End_Game()
{
    Tetris tetris = new Tetris();
    tetris.Start();
    tetris.End();
}
Run Code Online (Sandbox Code Playgroud)

它基本上迫使我定义了3个东西:Tetris类及其Start()End()方法,但除此之外它还没用.它可能会立即引起它的兴趣,因为我可以定义该类和那些方法,但后来它可能不会用于任何目的.它的唯一目的可能是表明必须有可能开始游戏并结束它而不会在中间出现异常.

你对此有何看法?

S.L*_*ott 19

它基本上迫使我定义了三件事:Tetris类及其Start()和End()方法,

真正.

但除此之外它还没用.

假.

以后它可能不会用于任何目的

也错了.

它的目的[表明]必须有可能开始游戏并结束它而不会在中间出现异常

这太棒了.史诗.丰碑.

实际上,那个测试会经常失败,以至于你会变得讨厌它.程序中各种随机位置的每个未处理,未捕获的异常都将无法通过此测试.由于此测试,您将构建仔细的日志记录和调试.

该测试是EPIC.

  • "这个测试是EPIC"+1 :) (2认同)

Ski*_*ick 7

你真的没有通过这个测试来推动Tetris类的开发 - 你已经决定了它的API应该是什么,这很好,但为什么不写一个测试来测试它应该实际做的事情呢?

测试应通知API,反之亦然(imho).