草庐IT

rspec-given

全部标签

ruby-on-rails - Rails 5 - 找不到生成器 'rspec:install'

在我的Rails5.0.0应用程序中,我将以下内容添加到我的Gemfile中:group:development,:testdogem'byebug',platform::mrigem'rspec-rails','~>3.5','>=3.5.2'end我运行了bundleinstall。至此gem安装成功。然后我跑了以下:railsgeneraterspec:install但我收到一条错误消息:RunningviaSpringpreloaderinprocess8893Couldnotfindgenerator'rspec:install'.Maybeyoumeant'css:asse

ruby-on-rails - Rspec - 检查数组是否具有与其他数组相同的元素,无论顺序如何

我不确定它是否是一个Rspec问题,但我只在Rspec测试中遇到过这个问题。我想检查一个数组是否等于另一个数组,而不考虑元素顺序:[:b,:a,:c]=?=[:a,:b,:c]我当前的版本:my_array.length.should==3my_array.shouldinclude(:a)my_array.shouldinclude(:b)my_array.shouldinclude(:c)在Rspec、ruby或Rails上是否有任何方法可以做这样的事情:my_array.shouldhave_same_elements_than([:a,:b,:c])问候

ruby-on-rails - 带有 Devise 和 rspec : Warden test helpers unreliable 的 Rails 3

我有一个使用Rails3.2和Devise的应用程序。我有一个使用rspec和Capybara的请求测试套件。我尝试在我的登录助手中改用Warden测试助手,而不是让Capybara填写登录表并提交。由于我的测试套件的大小和复杂性,这使我的测试运行时间节省了超过一分半钟。在我的配置中是:RSpec.configuredo|config|config.includeWarden::Test::Helpers,:type=>:requestconfig.after:eachdoWarden.test_reset!endend在上下文中:let!(:current_user){Factory

ruby-on-rails - RSpec.configure 和请求对象

我有一个作为RESTfulAPI构建的Rails3.1应用程序。计划是根据通过AuthorizationHTTPheader在每个请求上传递的APIkey来处理身份验证。为了在RSpec中对此进行测试,我想在config.beforeblock中设置request.env["HTTP_AUTHORIZATION"]属性:RSpec.configuredo|config|config.mock_with:rspecconfig.use_transactional_fixtures=trueconfig.before(:each)do#SetAPIkeyinAuthorizationhea

ruby - 使用 Sinatra 和 rspec stub Controller 方法

因此,我正在尝试找出一种在rspec中为Sinatra应用stubController方法的方法。这样做的主要原因是测试应用程序的逻辑流程,并确保它在满足某些条件时调用必要的功能。所以,本质上,我希望能够做类似的事情controller.should_receive(:fancy_method).and_return("Thisisastring")我遇到的困难是访问sinatra应用程序中的Controller实例。我可以使用sinatraController类上的class_eval覆盖当前函数,但我想断言这些函数确实在运行。有人有什么建议吗?谢谢。 最

ruby - 组合 RSpec 过滤器?

我一直在查看文档,但似乎缺少对多个过滤器如何工作的描述。有没有人对多个过滤器的行为有很好的解释或很好的解释来源?他们列出的顺序重要吗?这是一个代码示例,其行为可能与预期不同......Rspec.configuredo|c|this_version=get_version_number.to_symc.filter_run:focus=>truec.filter_run_excluding:limit_to=>true,this_version=>falsec.filter_run:new_stuff=>truec.run_all_when_everything_filteredend

ruby - RSpec 规范伪造类常量的最佳实践或解决方法

假设我有Car和Mechanic类(class)。汽车有“运行”方法。Mechanic出于某种原因需要Car。然后我编写RSpec规范。在mechanic中,我定义了一个这样的假类:classCar;end然后将mechanic在其上使用的方法stub。如果我单独运行测试,一切正常。但是当我一起运行两个测试时(rspecspec/directory/),我的Mechanicspecs使用真实的Car类。所以。我想这是因为ruby​​类是“开放的”,我已经为汽车规范加载了一次类。但是有更好的方法吗?这种情况的最佳做法是什么?这是否意味着我的代码需要一些改进,因为它可能是紧密耦合的?我在g

ruby-on-rails - 使用 rspec 测试 rails 而不需要运行所有初始化程序?

假设您正在开发一个Rails应用程序,它有很多初始化程序,这些初始化程序会在启动时调用各种外部系统。当使用rspec-rails运行rspec时,它会运行所有初始化器,即使您的测试很简单,不需要rails基础设施。我知道您可以使用Spork只产生一次这种成本,但有没有办法完全不产生它?仅仅为了一个简单的PORO规范而加载所有rails似乎很愚蠢。 最佳答案 不要使用spork。如果您想使用预加载器,请查看zeus或spring。您不需要加载整个Rails环境来测试不依赖于Rails的东西。这可以很简单,例如明确要求每个规范所需的依赖

ruby-on-rails - 如何使用 rspec 模拟/伪造文件的存在?

这是我的:it"shouldbeabletogetavaliddirectorypath"do@asset.some_file_path.should=="/something/test.jpg"end问题是如果不存在文件,some_file_path返回“/not_here_yet.jpg”。defsome_file_pathifFile.exists(self.my_image_path)returnmy_image_pathelsereturn"/not_here_yet.jpgendend我真的不想在我的测试中创建一个新文件。我有办法伪造该文件的存在吗?我在想一些事情:it"s

ruby - rspec模拟与其他模拟框架的优缺点是什么?

我看过很多过时的播客,其中提到摩卡是我想安装的一个宝石,因为它确实比rspec更好模仿。我有一种感觉,rspec开发人员已经意识到这一点,并从那时起改进了他们的模拟。但是,在默认的spec_helper.rb文件中,我看到三个模拟框架的一些注释掉的代码存根mochaflexmockrr向任何能给我一个像样答案的人投赞成票,就这些框架中至少一个的利弊与rspec自己的模仿框架进行比较。如果你能给我一个关于这三个问题的详细说明,我会接受你的回答。 最佳答案 真的,这只是口味的问题。看一看语法,看看什么最适合你。当然,使用rspec的内置