首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用测试系统与规范系统

使用测试系统与规范系统
EN

Stack Overflow用户
提问于 2013-07-30 08:17:55
回答 2查看 75关注 0票数 2

我对行为驱动的开发非常陌生,我试图把我的注意力集中在一些基本的东西上:测试系统和规范系统之间的区别。

到目前为止,我一直在使用基于Ruby的minitest/test库,其中典型的单元测试看起来如下所示:

代码语言:javascript
复制
require "minitest/test"

class TestMeme < Minitest::Test
 def test_that_kitty_can_eat
   assert_equal "OHAI!", @meme.i_can_has_cheezburger?
 end
end

另一方面,来自minitest/spec的规范如下所示:

代码语言:javascript
复制
require "minitest/autorun"

describe Meme do
 describe "when asked about cheeseburgers" do
   it "must respond positively" do
     @meme.i_can_has_cheezburger?.must_equal "OHAI!"
   end
 end
end

那么测试和规范到底有什么区别呢?我应该选择,还是两者兼用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 14:50:37

你所展示的只是测试的风格。您可以使用最小的API创建测试,也可以使用规范DSL创建测试。正如您所指出的,它们在功能上是等价的。两者之间的区别在于偏好。

更大的问题是TDD和BDD。两人都主张通过编写测试来驱动软件的设计。首先编写一个失败的测试,然后只编写通过测试所需的代码,然后重构代码以使其正确,同时保持测试通过。这被称为TDD循环。

BDD更进一步,指定开发人员如何与用户交互来定义开发人员工作的故事。它还主张为模拟提供一个与大多数TDD实践者不同的角色。但是,与两种方法都同意的非常大的领域相比,这些差别很小。

您可以使用规范样式的测试来练习TDD,也可以用测试样式的测试来练习BDD。您可以使用规范样式的describeit块与assert_*断言进行混合和匹配,也可以使用must_*期望测试样式类和方法定义。测试风格和规范风格的语法之间的区别是肤浅的。

票数 3
EN

Stack Overflow用户

发布于 2013-07-30 08:46:01

BDD测试是业务分析师友好的单元测试,而单元测试只是对开发人员友好的测试。BDD定义了一种在开发人员和巴斯之间进行交互的语言。

此外,理想情况下,BA可以生成一个面向人的、但可以自动执行的文档,与敏捷很好地集成在一起,格式化为用户故事。

我认为你只需要多读一些关于BDD的文章,wiki有一篇好文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17941747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档