`
- 浏览:
111859 次
- 性别:
- 来自:
南京
-
BDD RSpec describe() it()
名词解释code example:
An executable example of how the subject code can be
used, and its expected behaviour (expressed with expectations) in
a given context. In BDD, we write the code examples before the
subject code they document.
名词解释:example group
A group of code examples.
名词解释:subject code
The code whose behaviour we are specifying with RSpec.
RSpec provides a Domain Specific Language for specifying the behaviour
of objects. It embraces the metaphor of describing behaviour the way we
might express it if we were talking to a customer, or another developer.
A snippet of such a conversation might look like this:
You: Describe a new account
Somebody else: It should have a balance of zero
Here’s that same conversation expressed in RSpec:
describe "A new Account" do
it "should have a balance of 0" do
account = Account.new
account.balance.should == Money.new(0, :USD)
end
end
We use the describe( ) method to define an example group. The string we
pass to it represents the facet of the system that we want to describe
(a new account). The block holds the code examples that make up that
group.
The it( ) method defines a code example. The string passed to it describes
the specific behaviour we’re interested in specifying about that facet
(should have a balance of zero). The block holds the example code that
exercises the subject code and sets expectations about its behaviour.
Using strings like this instead of legal Ruby class names and method
names provides a lot of flexibility. Here’s an example from RSpec’s own
code examples:
it "should match when value < (target + delta)" do
be_close(5.0, 0.5).matches?(5.49).should be_true
end
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
- **灵活的测试结构**:RSpec支持多种测试组织方式,如描述组(describe)、上下文(context)等,便于编写结构化的测试。 - **丰富的匹配器**:RSpec提供了大量的匹配器(matchers),用于检查各种不同的条件和结果...
- **清晰的测试结构**:RSpec支持使用`describe`和`context`块来组织测试逻辑,使测试代码结构更加清晰。 - **使用模拟对象**:RSpec提供了强大的模拟对象功能,可以在测试中模拟外部系统或复杂依赖,以便更专注于...
RSpec 正是基于 BDD 的理念构建起来的,它提供了一种易于理解的方式来编写这些“行为”的描述。 #### 三、RSpec 的核心概念 1. **Describe/Context**: 这些是 RSpec 中用于组织测试的主要结构。`describe` 通常...
2. **例子(Examples)**:例子是RSpec中最小的测试单元,它们通常由`it`块表示,每个例子都对应一个具体的测试场景。 3. **共享示例(Shared Examples)**:RSpec允许创建一组可重用的例子,这有助于减少重复代码,提高...
**RSpec** 是 Ruby 社区中最受欢迎的行为驱动开发(Behavior Driven Development, BDD)框架之一。它为开发者提供了一种灵活的方式来定义应用程序的行为,并通过简洁易读的语法来编写测试用例。 **特性:** 1. **...
- **编写模型测试**:使用RSpec的`describe`和`it`块来定义测试案例,验证模型的行为是否符合预期。 - **RSpec的新句法**:介绍RSpec中的新语法特性,如`let`、`before`、`after`等,这些可以帮助减少冗余代码。 - *...
在RSpec-bank的源码中,可以看到大量的`describe`和`it`块,这是RSpec的基本结构。`describe`用于定义一个测试上下文,`it`则定义了一个具体的测试案例。例如,针对账户管理,可能会有如下代码: ```ruby describe ...
rspec-可与稳定Rust一起使用的BDD测试工具 当您喜欢BDD和所有嵌套的describe/context/it测试方式时,但是您也喜欢每天编译代码时 :OK_hand: 。 如果您不知道Rust是什么,或者对术语BDD,TDD感到困惑,或者只是想对...
- **RSpec**(RSpec)是一种为Ruby编程语言设计的行为驱动开发(Behavior Driven Development, BDD)框架。它通过提供一种简单而强大的语法来描述对象的行为,使得测试代码更加清晰易读。 - **行为驱动开发**(BDD)...
gospecify的设计灵感来源于Ruby社区的rspec,它提供了`Describe`、`Context`、`It`等关键字来构建测试结构。这些关键字帮助组织测试代码,形成一种层次化的结构,使得测试逻辑更加清晰。 1. `Describe`: 这个关键字...
在这个例子中,我们使用了RSpec的`describe`、`context`和`it`等关键字来结构化测试。通过`before`定义了一个用户对象,然后分别测试了有效和无效数据情况下的行为。 #### 六、RSpec 的高级特性 - **自定义匹配器*...
- **上下文(Context)**:在 RSpec 中,`describe` 和 `context` 块用于定义测试上下文。它们帮助组织和分组相关的测试用例。 - **例子(Examples)**:每个具体的测试用例称为一个“例子”。例子由 `it` 或 `specify` ...
RSpec通过其DSL提供了丰富的功能来编写测试用例,包括但不限于`describe`、`context`、`it`等关键字。这些关键字帮助组织和描述测试代码,使之既清晰又富有表达力。RSpec还支持测试中的预期失败、测试间的数据共享、...
RSpec 提供了一組流暢的 API,允許開發者使用簡單的英語詞句來描述測試,例如 `describe`, `context`, `it` 和 `expect` 等方法。這樣的做法使得測試讀起來就像人類語言一樣自然。 ##### 特點 - **易讀性**:RSpec...
在Ruby编程语言中,RSpec是一种广泛使用的测试框架,它允许开发者以一种清晰、简洁的方式编写行为驱动的开发(BDD)测试。`rspec_demo`项目显然是一个展示如何使用RSpec进行测试的实例。通过这个演示,我们可以深入...
BDD风格的断言通常包括`describe`用于组织测试套件,`it`用于定义测试用例,以及`expect`或`should`来进行断言。 2. **Mocha-Lazy-BDD核心概念** - **let**: 在RSpec中,`let`是一个函数,用于定义在每次测试用例...
RSpec3的测试用例以`describe`和`it`块组成,它们分别代表了一个测试的上下文和具体的测试行为。例如,测试一个名为`Greengrocer`的类,可以这样写: ```ruby require 'spec_helper' describe Greengrocer do it ...
`rspec-style-guide` 强调使用动词开头的描述,如 `describe` 和 `it` 块,以清晰地表达测试的目的。此外,对于 `before`、`after` 和 `around` 这样的回调方法,应使用有意义的名称来表示它们的作用。 3. **预期和...
在NSpec中,你可以创建测试类并使用`describe`和`it`关键字来定义测试规范。例如: ```csharp using NSpec; class DescribeCalculator : nspec { void when_adding_two_numbers() { it["should return the sum...
RSpec是Ruby社区广泛使用的BDD(行为驱动开发)工具,它提供了一种清晰、可读性强的方式来定义软件的行为,并且使得测试代码本身几乎像自然语言一样表达测试场景。 在Ruby中,RSpec允许开发者编写类似于以下的测试...