关闭

测试驱动开发TDD(3)

发表于:2014-1-17 11:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:crazy_itman    来源:51Testing软件测试网采编

  上一篇我剩下的To-Do-List:
  猜测数字
  输入验证
  生成答案
  输入次数
  输出猜测结果
  今天争取全部搞定。
  现在我们Guesser、生成答案、输入验证都有了。把它们组装成一起摇身一变成一个Game!
  用一个类把这些职责单一的小模块组合起来。我暂且称它为GameManager.
  分析剩下的需求。(1)输入6次GameOver.(2)输入合法数字返回猜测结果。(3)游戏结束提示重新开始游戏。(4)中途输入exit 退出游戏。(5)输入正确答案,GameOver。
  先把之前写的Guesser提出一个接口。
public interface IGuesser
{
string AnswerNumber { get; }
string Guess(string inputNumber);
}
public class Guesser :IGuesser
{
public string AnswerNumber { get; private set; }
public Guesser(IAnswerGenerator generator)
{
AnswerNumber = generator.Generate();
}
public string Guess(string inputNumber)
{
...
}
}
    Test First.
  新建GameManagerTest
[TestClass]
public class GameManagerTest
{
[TestMethod]
public void should_return_game_over_when_input_times_is_six_and_result_is_wrong()
{
IGuesser guess = new Guesser(new AnswerGeneratorForTest());
var game = new GameManager(guess);
var input = "1368";
var maxtimes = 6;
var actual = false;
for (var time = 0; time < maxtimes; time++)
{
game.Guess(input);
}
actual = game.IsGameOver;
Assert.AreEqual(true, actual);
}
}
41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号