unit-testing - 在编写源代码之前如何编写单元测试?

标签 unit-testing tdd

由于单元测试是一个白盒测试,它假定您必须事先知道您的代码必须处理的所有情况、您的代码必须处理的所有客户端对象(也就是测试中的 Mock 对象)以及正确的执行顺序客户端对象必须出现在代码中(因为单元测试考虑到模拟对象的调用)。换句话说,您必须确切地知道代码的详细算法。在您准确了解代码的算法之前,您必须先编写它!

从我的角度来看,我看不出在编写源代码之前如何编写正确的单元测试。尽管如此,由于功能测试是一种用户需求,因此可以先编写功能测试。
你的建议?
最良好的问候

为这个问题提供了一个例子:
How to write test code before write source code when they are objects dependencies?

最佳答案

首先:大量单元测试不需要 Mocks,不需要与其他对象交互;你的问题不适用于那些。

如果新方法的目的或部分目的是对某个协作对象产生影响,那么这就是必须测试的一部分。如果这不是它的目的,但您的实现偶然会对协作者产生影响,那么您不应该测试这种偶然影响。

无论哪种方式,很容易看出您可以在编写代码之前编写测试。如果您的方法应该影响另一个对象,那么测试应该这样说。如果您的方法不应该这样做,则测试不需要说明该方法与其他对象的交互。

关于unit-testing - 在编写源代码之前如何编写单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537683/

相关文章:

java - 如何对调用另一个方法的方法进行单元测试?

javascript - 使用 Jest 对 React 组件进行单元测试时如何模拟子组件

unit-testing - 有什么工具可以记录单元测试的Java对象吗?

reactjs - TDD 与reactjs、reactify、babelify、browserify、gulp

postgresql - 单元测试 Postgres 数据库连接 golang

javascript - Karma Jasmine 测试从 Controller 调用的 $resource

c# - 如何强制 VS 2010 跳过未更改的项目的 "builds"?

ruby-on-rails - RSpec - 未定义的方法 `key?'

jasmine - 仅开 Jest - addEventListener ~ 单击断言

ios - 从 Storyboard 中实例化 View Controller 时出现 XCTestCase 错误