上一篇我剩下的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);
}
}