我有一个这样的测试用例:describeWorkCardsControllerdoit"something"dowork_card=instance_double(WorkCard,{:started?=>true})#somemorecodeendend当我运行RSpec时,出现错误:undefinedmethod'instance_double'for#根据http://rubydoc.info/github/rspec/rspec-mocks/RSpec/Mocks/ExampleMethods这种方法存在。所以我尝试通过以下方式直接访问它:describeWorkCardsCo
我有几个ruby脚本并用rspec测试它们。我将我的环境放在一个env.rb文件中(目前),这样我就可以在本地访问它们,在生产环境中将它们放在配置变量中。但是当我运行rspec时,我想要不同的环境变量。两个用例:我运行Twilio,所以我希望能够更改用于其测试凭证的SID我将东西作为服务存储在数据库中,并希望有一个单独的测试数据库 最佳答案 你可以在上下文中使用ENV["FOO_BAR"]="baz"显式设置ENV变量检查Rails.env.test?在您的初始化程序中设置twilio和其他具有测试特定选项的客户端有一个包含所有
在我们的rails3.1.4应用程序中,rspec用于测试应用程序Controller中的公共(public)方法require_signin。这是require_signin方法:defrequire_signinif!signed_in?flash.now.alert="Loginfirst!"redirect_tosignin_pathendend这是rspec代码:it"shouldinvokerequire_signinforthosewithoutlogin"docontroller.send(:require_signin)controller{shouldredirec
当我们运行时bundleexecrake规范尝试加载环境时出现错误:...gems/activesupport-3.2.8/lib/active_support/dependencies.rb:503:in`load_missing_constant':Expected...app/models/links/category.rbtodefineLinks::Category(LoadError)文件app/models/links/Category.rb确实定义了Links::Category。更奇怪的是,在guard和spork下运行时不会发生错误(我们运行测试的标准方式):bun
我有一个可以像这样配置的模块:moduleMyModulemattr_accessor:setting@@setting=:some_default_valueendMyModule.setting=:custom_value我正在使用RSpec测试不同的配置选项,发现设置在不同的测试之间保持不变,因为它们是类变量。在RSpec测试之间重新加载和重新初始化模块的最佳方法是什么? 最佳答案 我想到了这个解决方案:describeMyModuledobefore:eachdo#RemovestheMyModulefromobject-s
我正在尝试为ruby开发人员过渡到MacVim。我遇到的一个难题是快速运行规范并轻松获得结果(通过/失败)。当我运行:Rake(或:!rspec%)时,它会运行当前文件中的规范。输出显示在命令窗口中。如果我在常规终端中运行它,我会得到彩色输出。也就是说,点是绿色的,失败的是红色的。在MacVim中,我得到了这些奇怪的[32m和[0m标记。这是一个例子:关于如何解决这个问题有什么想法吗? 最佳答案 Gvim(我假设Macvim就是那个有品牌名称的:))背后没有真正的终端,所以这就是为什么你会得到这些“奇怪”的标记——它们是真正的转
前言我刚刚开始接触Ruby,不仅尝试学习语言,还尝试学习一些开发策略。作为初学者,我专注于测试和行为驱动开发。(是的,我两者都做是为了比较)我正在使用的小型软件项目单元测试(TDD)cucumber(BDD)Rspec(TDD和BDD)在不同的地方,我遇到了RCov作为一种工具,它告诉我我实际测试了多少实际代码。我在我的Rakefile中设置了以下RakeTask,用于单元测试的协方差分析:desc"RunRCovtogetcoverageofUnitTests"Rcov::RcovTask.new(:rcov_units)do|t|t.pattern='tests/**/tc_*.r
运行我的RSpec测试后,我经常得到这样的输出:expected:50got:#我如何找出RSpec实际得到的数字?感谢您的帮助。 最佳答案 正如@jcm评论的那样,它是220。(=0.22*103)require'bigdecimal'BigDecimal.new(220)#=>#BigDecimal.new(220)==220#=>true 关于ruby-on-rails-如何读取RSpec中的BigDecimal格式?,我们在StackOverflow上找到一个类似的问题:
在RSpecforTest::Unittests中是否有类似于shared_examples的插件/扩展? 最佳答案 如果您正在使用rails(或只是active_support),请使用Concern.require'active_support/concern'moduleSharedTestsextendActiveSupport::Concernincludeddo#Thisway,testnamecanbeastring:)test'bananabananabanana'doasserttrueendendend如果您不使
我正在Rails之外使用一些ActiveRecord模型,我正在为其编写单元测试。在我的测试中,我希望能够使用固定装置并认为我会使用一些rspec-rails为此的功能。我不能简单地使用require"rspec-rails"因为它有一些Rails依赖项而且我没有使用Rails。这是我正在使用的spec_helper:require'active_record'require'active_record/fixtures'require'active_support'require'rspec/rails/extensions/active_record/base'require'rs