jjzjj

vs-unit-testing-framework

全部标签

ruby - capybara -webkit : automatically save a screenshot on an RSpec test failure

当使用带有Rspec的capybara-webkit测试失败时,如何自动保存html和屏幕截图?如何在RSpec测试失败时执行回调。奖励积分:如何避免出现以下错误:Capybara::Driver::Webkit::WebkitInvalidResponseError执行这段代码时:require'capybara/util/save_and_open_page'path="/#{Time.now.strftime('%Y-%m-%d-%H-%M-%S')}"png=Capybara.save_and_open_page_path+"#{path}.png"page.driver.re

Ruby Koans #75 test_constants_become_symbols,正确答案?

我的问题基于这个问题:RubyKoan:Constantsbecomesymbols.我有以下代码:in_ruby_version("mri")doRubyConstant="Whatisthesoundofonehandclapping?"deftest_constants_become_symbolsall_symbols=Symbol.all_symbolsassert_equal__,all_symbols.include?(__)endend正确答案应该是下面的吗?assert_equaltrue,all_symbols.include?("RubyConstant".to_

ruby-on-rails - ruby 包含 vs 扩展

我正在尝试将裁剪图像所需的一些逻辑抽象到一个模块中,以免弄乱我的模型。代码基于http://railscasts.com/episodes/182-cropping-imagesmoduleCroppableImagedefcroppable_image(*image_names)image_names.eachdo|image_name|define_method"#{image_name}_sizes"do{:cropped=>read_attribute("#{image_name}_size").to_s,:large=>"800x800>"}enddefine_method"

ruby-on-rails - 之前(:each) for all tests except one

这是我的spec_helper.rb的一部分:RSpec.configuredo|config|config.before(:each)dologin(email,password)visitroot_urlendend我在所有(20多个)测试中都需要,除了一个。有没有办法避免单一测试执行beforehook? 最佳答案 您可以将元数据添加到不需要登录的测试中,然后在您的beforeHook中评估该元数据。例如,同一个文件中的两个测试。一个需要登录,一个不需要。#foo_spec.rbdescribeFoododescribe"#b

ruby-on-rails - Rails : Skinny Controller vs. Fat Model,还是我应该让我的 Controller 厌食?

我知道之前已经回答过类似的问题-例如:逻辑应该往哪里走在哪里做某些任务等。但我有一个更具体的问题-我应该在多大程度上采用这个公理:让你的Controller瘦,让你的模型胖!这是一个例子:例如,假设我有多个验证数据源。一个很好的例子是VIN号码-我可以根据制造商数据源、DMV数据源以及我的本地数据库对其进行验证,以查看我的记录。所以我有一个名为Vin和vins_controller的模型。在模型内部我有5种方法:check_against_local_dbcheck_against_dmvcheck_against_car_maker_1check_against_car_maker_

ruby-on-rails - Rails 最终用户模板引擎 : Liquid vs Mustache vs. 其他?

我正在创建一项服务,我想在其中允许最终用户编辑网页的HTML模板,允许访问特定“变量”以包含在模板中。我知道liquid正是为此目的而设计的,它是安全的(至少相对而言),并且在大量生产中使用。但是,我发现与Mustache之类的语言相比,这种语言对于最终用户来说相当复杂。Mustache听起来不错,但我担心安全问题……它是否曾经用于最终用户模板?基本上我正在寻找一个模板引擎,我可以使用w/Rails为最终用户提供:安全-不允许用户执行代码……至少不允许在服务器上执行。用户将被允许插入客户端javascript。功能强大-允许最终用户使用提供的“变量”并在#1的上下文中创建他们可以想象的

ruby-on-rails - 为什么要测试:units and test:functionals insist on running in development environment?

我正在尝试测试一些特定于环境的设置(特定于中间件,但这似乎无关紧要),但我无法让测试在正确的环境中运行。症状:如果我运行rubytest/unit/my_test.rb,一切都很好,因为它做的第一件事是需要test/test_helper.rb,这会设置环境"test"然后加载Rails环境。如果我运行raketest,第一批(功能)运行良好,但第二批(单元)失败。失败是ENV['RAILS_ENV]以某种方式在批处理之间未设置,然后config/environment.rb看到没有设置并使用默认值"development“。环境在config/environment.rb的开头和该文

Ruby each vs while 循环性能

试图解决Ruby中的一个基本算法问题,并测试性能。为了以防万一,该算法旨在找到可被1到20之间的所有数字整除的最小正数。这是代码:defremainder(number)#withwhiledivisor=2whiledivisor在我的电脑上,对于while版本,Ruby大约需要10秒,对于每个版本,解析需要70到80秒。代码做完全相同的事情,给出相同的结果。为什么会有如此大的性能差异? 最佳答案 似乎成本是通过以下方式添加的:为范围对象(2..20)创建枚举器在each中调用block这是一个基准require'benchmar

ruby - gemspec 文件中的 `files` 、 `executables` 、 `test_files` 和 `require_paths` 是什么?

我不清楚.gemspec文件中的某些规范在做什么。具体来说,spec.files=`gitls-files-z`.split("\x0")spec.executables=spec.files.grep(%r{^bin/}){|f|File.basename(f)}spec.test_files=spec.files.grep(%r{^(test|spec|features)/})spec.require_paths=["lib"]谁能解释一下这些与RubyGem的功能有何关系以及为什么需要它们? 最佳答案 executables:

ruby-on-rails - Rails,activerecord : self[:attribute] vs self. 属性

在Rails中访问事件记录列/属性时,使用self[:attribute]与self.attribute有什么区别?这会影响getter和setter吗? 最佳答案 它们都只是获取属性的方法-它们都只是getter。self.attribtue是一个更“传统”的getter,而self[:attribute]基本上只是[]方法。在使用两者之间切换不会产生任何影响。我建议只使用self.attribute方法,因为它在语法上更好。但是,当其他内容覆盖self.attribute方法时,使用self[:attribute]会派上用场。例