`

Cucumber 中的 World

    博客分类:
  • BDD
阅读更多
引用
require 'spec/stubs/cucumber'

The spec/stubs/cucumber ships with RSpec (as of version 1.2.8), and
adds behaviour to the Cucumber World to support using RSpec stubs
in Cucumber scenarios.3

To ensure that each cucumber scenario starts with a clean slate, your scenarios are run upon a blank Object.new object. Or in a Rails project its a new Rails test session ActionController::IntegrationTest.

These are called World objects (see cucumber wiki). You pass in a specific World object you’d like to use, else it defaults to Object.new For a Rails project, you’re using Cucumber::Rails::World.new for your world object each time, which is a subclass of ActionController::IntegrationTest.

The benefit of a World object starting point for each scenario is that you can add methods to it, that won’t affect the rest of the Ruby world you live in: which will be the Cucumber runner. That is, you cannot accidently blow up Cucumber.


World(*world_modules, &proc)


Registers any number of world_modules (Ruby Modules) and/or a Proc. The proc will be executed once before each scenario to create an Object that the scenario’s steps will run within. Any world_modules will be mixed into this Object (via Object#extend).

This method is typically called from one or more Ruby scripts under features/support. You can call this method as many times as you like (to register more modules), but if you try to register more than one Proc you will get an error.

Cucumber will not yield anything to the proc. Examples:

   World do
     MyClass.new
   end

   World(MyModule)


########been excuted#########
########been excuted#########
########been excuted#########
You can only pass a proc to #World once, but it's happening
in 2 places:

/world.rb:27:in `World'
vendor/plugins/email-spec/features/support/env.rb:14:in `World'







# File 'lib/cucumber/rb_support/rb_dsl.rb', line 47

def World(*world_modules, &proc)
  RbDsl.build_rb_world_factory(world_modules, proc)
end




分享到:
评论

相关推荐

    Cucumber Recipes

    We’ll arm you with ready-rolled solutions to real-world problems: your tests will run faster, read more clearly, and work in any environment. Our first tips will help you fit Cucumber into your ...

    自动化测试平台cucumber框架兼容APP,WEB,API

    3. **World对象**:Cucumber中的World对象是一个全局上下文,用于存储测试运行期间的状态。每个测试步骤都有自己的World实例,确保测试隔离。 4. **Scenario Outlines**:这种高级特性允许定义一组可变的测试场景,...

    cucumber学习笔记V1.0

    - **Cucumber + Java**:Cucumber 与 Java 结合广泛应用于 Java 项目中。有多种工具可以用来与 Maven 或 Ant 集成,如 Cucumber-JVM。 - **Cucumber + .NET**:Cucumber 与 .NET 的结合称为 Cuke4Nuke。 - **...

    Cucumber:用于SBT的Cucumber测试框架和插件(Scala中的BDD测试)

    - **World**:每个Cucumber测试运行都有一个上下文对象,称为World。在这个上下文中,你可以保存和操作状态,供不同步骤之间共享。 ### 2. SBT集成Cucumber - **Cucumber插件**:在SBT项目中,通过添加Cucumber...

    关于rails 3.1 cucumber-rails 1.2.0

    在`support`目录下,开发者可以放置一些辅助文件,例如World类(用于扩展Cucumber的上下文)、Hooks(用于在测试前后的自定义操作)和环境配置。这些支持文件增强了Cucumber-Rails的灵活性和可定制性。 结合Rails ...

    cucumber-3g:Cucumber、Groovy、Guice 和 Gradle 的示例集成

    在这个解决方案中,World 保留了对所有 Guice 管理的依赖项的引用,这些依赖项可以从 stepdef 直接访问。 IntelliJ 确保来自 World 的依赖项在 stepdef 中可见。 技术细节 Env.groovy 位于 stepdefs 所在的目录中,...

    cucumber-automation:这是一个Cucumber自动化测试框架演示

    Cucumber自动化测试框架是一个强大的工具,尤其在JavaScript领域中,它被广泛用于行为驱动开发(BDD)。这个项目,"cucumber-automation",显然旨在展示如何利用Cucumber进行自动化测试。Cucumber以其易读性著称,...

    Cucumber-Protractor-custom-framework:Cucumber量角器自定义框架的基本实现

    3. **世界对象(World)**:在Cucumber中,世界对象是存储测试状态的地方。你可以将共享数据和方法放在世界对象中,供所有步骤定义使用。 4. **页面对象(Page Objects)**:这是Protractor的最佳实践,用于封装...

    cucumber-demo

    我写了这个并不完全是微不足道的例子,因为有时我被问到如何开始应用验收测试驱动的开发,而不是简单地选择一个工具并覆盖一个 hello world 或堆栈示例。 我对这个例子的意图是首先展示规范,最后展示集成。 我相信...

    cucumberjs-demo:使用 Cucumber.js 规范和测试斐波那契计算器

    总的来说,这个 cucumberjs-demo 项目提供了一个很好的学习资源,帮助开发者理解如何使用 Cucumber.js 进行 BDD 测试,并实践 JavaScript 编程中的斐波那契算法。通过这种方式,你可以提高代码质量,确保功能正确性...

    BDD_Sample_Tests:Cucumber(小Cucumber)

    3. **世界对象(World Object)**:在Cucumber中,每个测试运行都有一个所谓的“世界”对象,它是一个全局的上下文,可以用来存储和共享状态。你可以在这个对象上定义方法,供步骤定义使用。 4. **钩子(Hooks)**...

    cucumber.github.com:已弃用

    3. **World 对象**:在 Cucumber 测试执行中,World 对象提供了一个共享状态,允许你在不同步骤之间保持数据和上下文。 4. **钩子函数**:Cucumber 允许你定义在测试执行前后运行的钩子函数,如 `@Before` 和 `@...

    CucumberAPI

    5. **World**:在 Cucumber 中,每个测试运行都有一个独立的上下文,称为 World。World 用于存储状态,可以在多个步骤之间共享数据。 **Cucumber API 实践** 1. **安装与集成**:Cucumber 可以通过 Maven 或 ...

    email-spec:用于使用ActionMailer或Pony在ruby应用程序中测试电子邮件的RSpecMiniTest匹配器和Cucumber步骤的集合

    电子邮件规格 RSpec , MiniTest和Cucumber步骤的匹配器集合... # Make sure this require is after you require cucumber/rails/world. require 'email_spec' # add this line if you use spork require 'email_spec/c

    bdd-helloworld-test:bdd-helloworld-编辑

    2. **Cucumber 或类似的 BDD 工具:** 在 JavaScript 环境中,Cucumber.js 是一个常见的 BDD 工具,它允许开发者将业务需求转化为可执行的测试用例。这些用例通常以 `.feature` 文件的形式存在,使用 Gherkin 语法...

    【高考领航】最新2014-2015学年高中英语 Unit7 Lesson3 The Sea World课时训练 北师大版必修3

    【高考领航】系列课程是针对高中学生的复习资料,这篇内容是关于2014-2015学年北师大版必修3高中英语Unit7 Lesson3 "The Sea World"的课时训练,旨在帮助学生巩固和提高对本单元知识的理解与应用。 在单词拼写部分...

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

    6. 编写HelloWorld示例:在`spec`目录中创建一个测试文件,比如命名为`hello_world.spec.rb`,然后可以编写测试代码,比如测试一个简单的`HelloWorld`类的`say_hello`方法。 7. 运行RSpec测试:在命令行中进入`spec...

    wdio-cucumber

    重载默认的World对象 调试测试 代码中的browser.debug()语句,然后: npm run test:debug这将使调试repl进入控制台窗口 在vscode或调试器语句中添加断点,并在vscode中运行启动配置。 依存关系 必须安装Java才能运行...

    cucumbertest

    Cucumber测试是一种流行的自动化测试框架,尤其在BDD(行为驱动开发)中广泛使用。它允许非技术人员,如业务分析师和产品经理,用自然语言编写测试场景,这些场景被称为Gherkin语句。Cucumber测试的核心理念是将业务...

    CucumberFramework

    3. **World**:每个Cucumber测试运行的上下文,保存了测试的状态信息。 4. **Hooks**:可以在特定的测试生命周期阶段(如Before、After)运行的代码,用于设置和清理测试环境。 5. **Data Tables and Scenario ...

Global site tag (gtag.js) - Google Analytics