测试驱动开发TDD(2)

发表于:2014-1-16 11:07

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

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

  AnswerGenerator给产品代码用。AnswerGeneratorForTest给测试代码用。这样就可以避免测试依赖可变的问题。
  相应的给Guesser类以及测试代码做个修改。
public class Guesser
{
public string AnswerNumber { get; private set; }
public Guesser(IAnswerGenerator generator)
{
AnswerNumber = generator.Generate();
}
public string Guess(string inputNumber)
{
...
}
}
[TestClass]
public class GuesserTest
{
private Guesser guesser;
[TestInitialize]
public void Init()
{
guesser = new Guesser(new AnswerGeneratorForTest());
}
...
}
  这样我在测试代码当中就会给一个不可变的随机数。AnswerGeneratorForTest。所以之前的Guesser测试代码也不会因为每次的随机数不一样导致挂掉。
  产品代码呢?直接丢AnswerGenerator进去就妥妥地。
  To-Do-List:
  猜测数字
  输入验证
  生成答案
  输入次数
  输出猜测结果
  OK。今天的收获。
  (1)小步前进:依靠自身情况决定“小步”应该有多大。
  (2)重构:之前的测试是我们重构的保障。
  (3)测试依赖:测试不应该依赖于一些可变的东西。
  都到这了,有没有点TDD的感觉。知道TDD的步骤了吗?
  (1)新增一个测试。
  (2)运行所有的测试程序并失败。
  (3)做一些小小的改动。
  (4)运行所有的测试,并且全部通过。
  (5)重构代码以消除重复设计,优化设计。
  (6)重复上面的工作。实现1~5小范围迭代。直到满足今天的Story。
  上一篇还有个遗留的问题。我把它记在小本上。
相关文章:
测试驱动开发TDD(1)
44/4<1234
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号