-
关于Rspec的describe10
Rspec中对describe方法是这么说的:引用describe(*args, &block)
Creates and returns a class that includes the ExampleGroupMethods module. Which ExampleGroup type is created depends on the directory of the file calling this method. For example, Spec::Rails will use different classes for specs living in spec/models, spec/helpers, spec/views and spec/controllers.
我在看Rspec附带的example时候发现用到describe的时候很多都是这么写的:describe 类名,"描述" {BLOCK}
例如:describe Stack, " (with one item)" do before(:each) do @stack = Stack.new @stack.push 3 @last_item_added = 3 end it_should_behave_like "non-empty Stack" it_should_behave_like "non-full Stack" end
我想请教的是,为什么describe后面要加被测类的类名?有什么作用么?
谢谢!
问题补充:
谢谢nan1nan1。
补充一下:
期待更满意的答复。2008年10月25日 21:27
2个答案 按时间排序 按投票排序
-
采纳的答案
好吧。
RSpec的syntax, 如describe A do it "should xxx"do end end
describe和it这俩DSL都干了什么呢?
describe实际上是一个工厂方法,生成了ExampleGroup的子类的实例
it 自然就是生成excample了
继续看describe的参数,def describe(*args, &excample_group_block) ... end
这里头有一系列操作,比如设定options之类的,但是有一项,是设定该@description_text,具体就是把args每一项to_s后连起来。
所以说describe怎么写,完全都是为了可读性,你这么写也没问题:
describe 'a','b','c','d' do
end
不知道满意了没?2008年11月04日 13:36
相关推荐
1. **Describe/Context**: 这些是 RSpec 中用于组织测试的主要结构。`describe` 通常用于描述类或模块的行为,而 `context` 则用于更细粒度地描述在不同条件下的行为。 - 示例: ```ruby describe MyClass do ...
1. **描述(Describe)**:RSpec中的描述允许开发者组织测试逻辑,每个描述可以包含多个例子(Example)。描述可以用`describe`或`context`块来定义。 2. **例子(Examples)**:例子是RSpec中最小的测试单元,它们通常...
#### 一、RSpec框架简介与特性 **RSpec** 是 Ruby 社区中最受欢迎的行为驱动开发(Behavior Driven Development, BDD)框架之一。它为开发者提供了一种灵活的方式来定义应用程序的行为,并通过简洁易读的语法来编写...
- **灵活性强**:RSpec允许通过多种方式组织测试逻辑,包括描述(describe)、上下文(context)等,使测试更具结构性。 - **易于调试**:RSpec支持多种断言库,如Shoulda、RSpec::Expectations等,这些工具可以帮助...
- **描述(Describe)**:用来描述类或模块的行为。 - **上下文(Context)**:用于组织测试用例,可以嵌套以表示更复杂的场景。 - **预期(Expect)**:用来指定期望的结果或行为。 - **实例化(Let)**:用于延迟...
《RSpec Book》不仅是一本关于RSpec的教程,更是一本介绍如何进行行为驱动开发的指南。通过阅读本书,开发者可以深入了解BDD的概念和实践方法,并学会如何利用RSpec和Cucumber等工具来实施BDD流程。此外,书中还会...
### 关于《RSpec Book》的关键知识点 #### 一、RSpec简介 RSpec 是一种用于 Ruby 编程语言的行为驱动开发(Behavior-Driven Development, BDD)框架。它提供了一种易于理解的方式来编写测试代码,使开发者能够更加...
考虑到《RSpec Book》这本书的内容,我们可以推断其中包含了大量关于如何使用RSpec和Cucumber进行BDD开发的实际案例。书中可能包括了以下内容: - **RSpec基础知识**:介绍RSpec的基本概念、安装配置、核心特性和...
- **上下文(Context)**:在 RSpec 中,`describe` 和 `context` 块用于定义测试上下文。它们帮助组织和分组相关的测试用例。 - **例子(Examples)**:每个具体的测试用例称为一个“例子”。例子由 `it` 或 `specify` ...
在RSpec-bank的源码中,可以看到大量的`describe`和`it`块,这是RSpec的基本结构。`describe`用于定义一个测试上下文,`it`则定义了一个具体的测试案例。例如,针对账户管理,可能会有如下代码: ```ruby describe ...
RSpec 提供了一組流暢的 API,允許開發者使用簡單的英語詞句來描述測試,例如 `describe`, `context`, `it` 和 `expect` 等方法。這樣的做法使得測試讀起來就像人類語言一樣自然。 ##### 特點 - **易讀性**:RSpec...
在Ruby编程语言中,RSpec是一种广泛使用的测试框架,它允许开发者以一种清晰、简洁的方式编写行为驱动的开发(BDD)测试。`rspec_demo`项目显然是一个展示如何使用RSpec进行测试的实例。通过这个演示,我们可以深入...
RSpec ::等待 等待RSpec中的条件 为什么RSpec :: Wait存在? 时机很难。 时间问题和竞赛条件可能会困扰您的测试套件。 随着测试套件的可靠性逐渐降低,开发速度... describe Ticker do subject ( :ticker ) { Ticker
RSpec通过其DSL提供了丰富的功能来编写测试用例,包括但不限于`describe`、`context`、`it`等关键字。这些关键字帮助组织和描述测试代码,使之既清晰又富有表达力。RSpec还支持测试中的预期失败、测试间的数据共享、...
mongoid-rspec库提供了RSpec兼容匹配器的集合,这些匹配器有助于测试Mongoid文档。 安装 将此行放入您的Gemfile中: group :test do gem 'mongoid-rspec' end 兼容性 该宝石与Mongoid 3、4、5、6和7兼容... describe
describe 'a simple sum' do it 'equals two!' do expect ( 1 + 1 ) . to eq ( 2 ) end end 要运行您的规格,只需键入: bundle exec opal-rspec --color spec-opal/ 要求 除了已经在GEM依赖项中反映的内容...
`rspec-style-guide` 强调使用动词开头的描述,如 `describe` 和 `it` 块,以清晰地表达测试的目的。此外,对于 `before`、`after` 和 `around` 这样的回调方法,应使用有意义的名称来表示它们的作用。 3. **预期和...
describe "N+1 safety" do it "doesn't send unnecessary requests to db" do expect { User . create } . not_to exceed_query_limit ( 1 ) endend 上面的规范失败,并带有以下描述: Failure/Error: expect { ...
`pytest-describe`的核心特性在于引入了类似RSpec的`describe`和`it`关键字,它们允许开发者以一种更具叙述性的风格编写测试。`describe`用于定义测试的上下文,而`it`则用于指定具体的测试用例。这种结构化的组织...
请查看以下文章,了解新的RSpec语法和RSpec 3中的更改:如果要在升级到RSpec 3的过程中使用Transpec,请阅读RSpec官方指南:例子这是一个示例规范: describe Account do subject ( :account ) { Account ....