`
chenk85
  • 浏览: 43973 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Shoulda教程之二—上下文

 
阅读更多
原文:http://thoughtbot.com/projects/shoulda/tu×ial/context 上下文 在学习了Should语句之后,Shoulda的更多基本构建代码的知识就是上下文(Context)。上下文创建一个运行should语句的类似场景的fixture。Context代码块可以包含 setup/teardown 代码块,should代码块,或者其他context代码块。下面来试试在测试中使用简单的context: class QueueTest < Test::Unit::TestCase  context "一个队列实例" do   setup do    @queue = Queue.new   end     should "响应 :push 调用" do    assert_respond_to @queue, :push   end  end end 这里创建了一个名为”测试:一个队列实例可以响应:push调用”的测试方法,这很漂亮和易读。 嵌套 上面详尽的测试,简单测试队列的实例响应:push调用,但也提出了更多的上下文和测试。现在想看看让队列返回任何放进其中的东西。来添加一个嵌套的上下文进到其中: class QueueTest < Test::Unit::TestCase  context "一个队列实例" do   setup do    @queue = Queue.new   end     should "响应 :push 调用" do    assert_respond_to @queue, :push   end     context "具有一个元素" do    setup { @queue.push(:something) }      should "在:pop调用后返回元素" do     assert_equal :something, @queue.pop    end   end  end end 上面生成了测试方法”测试:一个队列实例应该响应:push调用”和”测试:一个队列实例具有一个元素应该在:pop调用后返回元素”。 注意一下,上下文的setup代码块是为每个should代码块运行一次的。首先@queue实例被创建出来,然后:something被放进去,接着执行assert_equal。下面用一个同样语意的测试方法虚拟地演示一下,记住下面的代码只是为了帮助理解,并不会实际的发生: define_method "测试:一个队列实例有一个元素应该在:pop调用后返回元素。" do  @queue = Queue.new  @queue.push(:something)  assert_equal :something, @queue.pop end 现在,如果使用一般的测试风格,就会在一个测试方法中,把一个元素放进队列中并在一个测试方法中把元素取出来,然后进行断言。但是将这个测试分离出来放到一个测试push的上下文时,就可以添加更多的共享同样setup的测试。 class QueueTest < Test::Unit::TestCase  context "一个队列实例" do   setup do    @queue = Queue.new   end     should "响应 [...]
分享到:
评论

相关推荐

    Shoulda教程中文版PDF

    ### Shoulda教程中文版知识点详解 #### 一、Shoulda简介 Shoulda 是一个 Ruby on Rails 的测试插件,它让 Test::Unit 测试框架具备了行为驱动开发(Behavior Driven Development, BDD)的特性。通过使用 Shoulda,...

    Shoulda:使手指和眼睛的测试变得容易

    Shoulda可帮助您在Minitest和Test :: Unit下编写更易于理解,可维护的特定于Rails的测试。 快速链接 :loudspeaker: 概述 作为伞形宝石, shoulda宝石不包含任何自己的代码,而是带来了另外两个宝石的行为: 例如...

    实用旅游英语教程第二版练习答案和翻译.ppt

    在《实用旅游英语教程第二版练习答案和翻译》中,我们发现了一系列与英语学习和旅游行业相关的练习题和翻译。这些练习旨在帮助学生提升在旅游情境中的英语沟通能力,包括填写空白、句子构造以及理解与旅游相关的专业...

    shoulda-kept-assign-to:我们错过了shoulda-matchers中的assign_to匹配器

    Shoulda- assign_to ( )在2.0.0版中删除了assign_to匹配器。 我们非常想念它,足以把它带回来。 该gem重新添加了assign_to匹配器,并通过引用包括了所有其他的shoulda-matchers就像它被无情地销毁之前一样。 示例...

    shoulda-matchers, 提取的测试匹配器的集合应该应该.zip

    shoulda-matchers, 提取的测试匹配器的集合应该应该 应该匹配 匹配器提供了RSpec-和minitest兼容的一个接口,用于测试公共 Rails 功能。 否则,这些测试将会更长。更复杂和容易出错。查看最新版本( 3.1.1 )的正式...

    新视野大学英语读写教程第二第二册U 词汇练习 单选PPT课件.pptx

    新视野大学英语读写教程第二第二册U 词汇练习 单选PPT课件.pptx 本资源为一份英语阅读教程的词汇练习PPT课件,旨在帮助大学学生提高英语词汇和阅读能力。该课件共有15页,涵盖了多个词汇题目和阅读理解题目,旨在...

    shoulda-kept-respond-with-content-type:我们错过了shoulda-matchers中的response_with_content_type匹配器

    Shoulda-matchers( )在2.0.0版中删除了response_with_content_type匹配器。 我们非常想念它,足以把它带回来。 这个gem包含了所有当前版本的Shoulda-matchers,并重新添加了“ respond_with_content_type”匹配器...

    shoulda-coulda:一个Slackbot,用于跟踪您的队友使用“应该”一词的频率。

    shoulda-coulda假设您正在运行一个should-counter-api通过它可以保存和获取“ shoulds”。 Shoulda-coulda假定存在3个环境变量: SHOULDA_COULDA_TOKEN=the Slack access token for your bot's Slack SHOULD_...

    上下文敏感的开放域对话响应的生成

    本研究论文提出了基于静态和动态注意力机制的上下文敏感开放域对话响应生成方法,并在两个公共数据集上进行了实验验证,结果表明静态注意力方法在自动和人工评估中均优于所有基线方法。 首先,我们从论文标题“上...

    全新版大学英语第二册综合教程练习答案及课文译文

    学习方式是大学英语第二册的主要主题之一,它强调了学习的多样性和灵活性,同时也强调了学习者的自主权和选择权。学习方式的选择对学习的效果和学习者的发展产生了重要影响。 知识点2:家长与孩子的互动 歌曲 ...

    Shoulda-matchers:用于通用Rails功能的简单一线测试

    Shoulda Matchers Shoulda Matchers提供了与RSpec和Minitest兼容的单线来测试通用的Rails功能,如果用手工编写的话,它们会更长,更复杂并且容易出错。快速链接 :open_book: 。 :loudspeaker: 。目录入门规范首先,...

    当代研究生英语读写教程答案_上册.doc

    这篇文档“当代研究生英语读写教程答案_上册.doc”主要包含了多项选择题的答案,这些题目涉及了丰富的英语...在学习过程中,结合上下文理解词汇和结构,同时进行适当的拓展阅读和写作练习,将有助于巩固这些知识点。

    rebranch:React用于AB实验的基于上下文的条件渲染组件

    React基于上下文的条件渲染组件以进行A / B实验 需要React v16.3.0及更高版本 npm i rebranch // example App.js import React from 'react' import { BranchProvider } from 'rebranch' // initialize the ...

    lucene,lucene教程,lucene讲解

    lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....

    大学英语综合教程第二册课文

    2. Should we share our dreams for a better life with our parents or keep them to ourselves? 3. Can children ever understand their parents completely? 4. From the song can you guess what the theme of...

    Why Should the United States Should Spread Democracy.pdf

    Why Should the United States Should Spread Democracy.pdf

    tkinter教程

    超级详细的tkinker教程。Tkinter 是使用 python 进行窗口视窗设计的模块. 简单的构造, 多平台, 多系统的兼容性, 能让它成为让你快速入门定制窗口文件的好助手. 它在 python 窗口视窗模块中是一款简单型的. 所以用来...

    英语语法简明教程chm

    教程中可能还会涉及情态动词(如can, could, should, must)的用法,它们可以用来表达可能性、建议、命令等含义。例如,"You should study regularly for better results." 名词的单复数、形容词和副词的比较级与...

    情态动词shall与should的用法解析.doc

    在实际应用中,应当根据上下文和交际意图选择适当的词。例如,在回答顾客关于照片何时可以取的问题时,店主应使用should(“They should be ready by 12:00.”)来表达对业务完成的肯定预期,而不是用might(可能性...

    42天学会英语短文 Nowadays the newspaper possesses considerable value Everybody should read it.

    - **描述**:“Nowadays the newspaper possesses considerable value Everybody should read it. It supplies us with a variety of news every day. It tells us the political situation of the world. If we ...

Global site tag (gtag.js) - Google Analytics