我的基本问题可归结为:在开始一个新项目时,我应该从编写功能的功能测试开始,然后在尝试通过功能测试时编写单元测试吗?或者我应该首先考虑该功能的较小组件,然后为其编写单元测试(然后再对该功能进行功能测试)?
例如,假设我想要登录我的网络应用程序。我是否首先编写功能测试,列出登录过程中发生的步骤(用户登录登录页面,用户填写必填字段,用户点击登录按钮等)?或者首先为表单字段的验证规则编写单元测试?我一直在做前者,现在我质疑我的工作流程是否存在缺陷以及是否有一些我没有看到的更好的方法。
顺便说一句,我有一种感觉,这可能会被标记为"征求意见"但我已经尝试在其他地方寻找和询问并且找不到到目前为止一个明确的答案提前感谢您的回复。
答案 0 :(得分:1)
你的第一个建议的方法是:为整体行为编写功能测试,然后编写单元测试来驱动一小部分功能,这是我的偏好。
这就是原因。第一个测试描述了您希望从系统中获得的新行为。当它通过时,您可以继续下一个功能。在它通过之前,你需要添加功能。所以这是一个很好的路线图。在添加每个新功能时,首先要编写一个仅测试新位的失败测试单元测试。所以这是一个很好的,非常具体的测试;它运行迅速,不依赖于其他元素。这推动了下一位的发展,功能测试使您保持正确,只编写新功能所需的位。您的单元测试将注意力集中在眼前的事情上;您之前通过的单元测试会在您破坏现有行为时通知您,并且您的功能测试可以让您知道该功能何时完成。