`

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

分享到:
评论

相关推荐

    BDD开发之rspec和cucumber

    - **灵活的测试结构**:RSpec支持多种测试组织方式,如描述组(describe)、上下文(context)等,便于编写结构化的测试。 - **丰富的匹配器**:RSpec提供了大量的匹配器(matchers),用于检查各种不同的条件和结果...

    The Rspec Book -- BDD methodology

    - **清晰的测试结构**:RSpec支持使用`describe`和`context`块来组织测试逻辑,使测试代码结构更加清晰。 - **使用模拟对象**:RSpec提供了强大的模拟对象功能,可以在测试中模拟外部系统或复杂依赖,以便更专注于...

    rspec 入门者学习

    RSpec 正是基于 BDD 的理念构建起来的,它提供了一种易于理解的方式来编写这些“行为”的描述。 #### 三、RSpec 的核心概念 1. **Describe/Context**: 这些是 RSpec 中用于组织测试的主要结构。`describe` 通常...

    rspec测试.pdf

    2. **例子(Examples)**:例子是RSpec中最小的测试单元,它们通常由`it`块表示,每个例子都对应一个具体的测试场景。 3. **共享示例(Shared Examples)**:RSpec允许创建一组可重用的例子,这有助于减少重复代码,提高...

    Pragmatic.The RSpec Book.2010.pdf

    **RSpec** 是 Ruby 社区中最受欢迎的行为驱动开发(Behavior Driven Development, BDD)框架之一。它为开发者提供了一种灵活的方式来定义应用程序的行为,并通过简洁易读的语法来编写测试用例。 **特性:** 1. **...

    使用RSpec 测试Rails 程序.pdf

    - **编写模型测试**:使用RSpec的`describe`和`it`块来定义测试案例,验证模型的行为是否符合预期。 - **RSpec的新句法**:介绍RSpec中的新语法特性,如`let`、`before`、`after`等,这些可以帮助减少冗余代码。 - *...

    RSpec-bank-main.rar

    在RSpec-bank的源码中,可以看到大量的`describe`和`it`块,这是RSpec的基本结构。`describe`用于定义一个测试上下文,`it`则定义了一个具体的测试案例。例如,针对账户管理,可能会有如下代码: ```ruby describe ...

    rspec:(Rust)Rspec-用于稳定Rust的BDD测试工具

    rspec-可与稳定Rust一起使用的BDD测试工具 当您喜欢BDD和所有嵌套的describe/context/it测试方式时,但是您也喜欢每天编译代码时 :OK_hand: 。 如果您不知道Rust是什么,或者对术语BDD,TDD感到困惑,或者只是想对...

    The.RSpec.Book

    - **RSpec**(RSpec)是一种为Ruby编程语言设计的行为驱动开发(Behavior Driven Development, BDD)框架。它通过提供一种简单而强大的语法来描述对象的行为,使得测试代码更加清晰易读。 - **行为驱动开发**(BDD)...

    Go-gospecify-提供了BDD的语法测试你的Go代码

    gospecify的设计灵感来源于Ruby社区的rspec,它提供了`Describe`、`Context`、`It`等关键字来构建测试结构。这些关键字帮助组织测试代码,形成一种层次化的结构,使得测试逻辑更加清晰。 1. `Describe`: 这个关键字...

    The RSpec book

    在这个例子中,我们使用了RSpec的`describe`、`context`和`it`等关键字来结构化测试。通过`before`定义了一个用户对象,然后分别测试了有效和无效数据情况下的行为。 #### 六、RSpec 的高级特性 - **自定义匹配器*...

    The RSpec Book

    - **上下文(Context)**:在 RSpec 中,`describe` 和 `context` 块用于定义测试上下文。它们帮助组织和分组相关的测试用例。 - **例子(Examples)**:每个具体的测试用例称为一个“例子”。例子由 `it` 或 `specify` ...

    无涯教程(LearnFk)-RSpec教程完整离线版.pdf

    RSpec通过其DSL提供了丰富的功能来编写测试用例,包括但不限于`describe`、`context`、`it`等关键字。这些关键字帮助组织和描述测试代码,使之既清晰又富有表达力。RSpec还支持测试中的预期失败、测试间的数据共享、...

    RSpec 讓你愛上寫測試

    RSpec 提供了一組流暢的 API,允許開發者使用簡單的英語詞句來描述測試,例如 `describe`, `context`, `it` 和 `expect` 等方法。這樣的做法使得測試讀起來就像人類語言一樣自然。 ##### 特點 - **易讀性**:RSpec...

    rspec_demo:Rspec演示

    在Ruby编程语言中,RSpec是一种广泛使用的测试框架,它允许开发者以一种清晰、简洁的方式编写行为驱动的开发(BDD)测试。`rspec_demo`项目显然是一个展示如何使用RSpec进行测试的实例。通过这个演示,我们可以深入...

    前端开源库-mocha-lazy-bdd

    BDD风格的断言通常包括`describe`用于组织测试套件,`it`用于定义测试用例,以及`expect`或`should`来进行断言。 2. **Mocha-Lazy-BDD核心概念** - **let**: 在RSpec中,`let`是一个函数,用于定义在每次测试用例...

    greengrocer_RSpec3

    RSpec3的测试用例以`describe`和`it`块组成,它们分别代表了一个测试的上下文和具体的测试行为。例如,测试一个名为`Greengrocer`的类,可以这样写: ```ruby require 'spec_helper' describe Greengrocer do it ...

    rspec-style-guide:编写规范的最佳实践!

    `rspec-style-guide` 强调使用动词开头的描述,如 `describe` 和 `it` 块,以清晰地表达测试的目的。此外,对于 `before`、`after` 和 `around` 这样的回调方法,应使用有意义的名称来表示它们的作用。 3. **预期和...

    cs-bdd:了解C#bdd框架的方法

    在NSpec中,你可以创建测试类并使用`describe`和`it`关键字来定义测试规范。例如: ```csharp using NSpec; class DescribeCalculator : nspec { void when_adding_two_numbers() { it["should return the sum...

    RSpec银行

    RSpec是Ruby社区广泛使用的BDD(行为驱动开发)工具,它提供了一种清晰、可读性强的方式来定义软件的行为,并且使得测试代码本身几乎像自然语言一样表达测试场景。 在Ruby中,RSpec允许开发者编写类似于以下的测试...

Global site tag (gtag.js) - Google Analytics