2011-07-07 48 views

回答

6

总之,存根(stub)。在单元测试时,为您的Twitter API调用编写存根函数,每次只返回相同的数据和响应。毕竟,你并没有测试Twitter的API。

+0

根据数据库代码的作用,内存中的SQLite数据库对于单元测试也非常有用。 – aggsol

3

当您首先编写测试(TDD)时,更自然地执行称为dependency injection的操作。

在我来描述的 三个简单的规则条款 测试驱动开发多年:做TDD当Bob大叔实践three rules。他们是:你是 不允许写任何生产 代码,除非它是一个失败的 单元测试通过。你不允许 再写一个比 足够的单元测试失败;并编译 失败是失败的。您不是 允许编写更多生产 代码,而不足以通过 一个失败的单元测试。

您必须先编写一个单元测试 ,以获得您打算编写的功能 。但通过规则2,你不能写出非常多的单元测试。由于 因为单元测试代码不能编译 或断言失败,您必须停止并编写生产代码。 但是,通过规则3,您只能编写 生产代码,以使测试 编译或通过,而不再进行更多操作。

如果你认为这个,你会 认识到你根本不能写 非常多的代码,没有 编译和执行的东西。事实上,这确实是重点。在 我们所做的一切,无论是编写 测试,编写生产代码,还是 重构,我们始终保持系统 执行。运行测试之间的时间为 的订单为 秒或分钟。即使10分钟太长也不行。

你也可以不与磕碰,我认为一些流行的磕碰的框架: