小编mar*_*ana的帖子

水豚问题:@request必须是ActionDispatch :: Request

我在让Capybara使用Rails时遇到了问题.只测试那个有趣的测试用品.好的,在附加的代码中有几个等价的测试.第一个是使用Rails附带的shoulda-context + Test :: Unit.第二次测试也是用水豚和上下文进行的.

require 'integration_test_helper'

class UsersTest < ActionDispatch::IntegrationTest
  fixtures :all

  context "signup" do

    context "failure" do

      setup do
      @attr = { :name => "", :email => "", :password => "", :password_confirmation => "" }
      end

      should "not make a new user" do
        assert_no_difference 'User.count' do
          post_via_redirect "users", :user =>@attr  # enviem les dades d'un nou usuari via create (POST /users)
          assert_template 'users/new'     # ens retorna a users/new, que significa que no s'ha creat l'usuari
          assert_select "div#error_explanation" # …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails shoulda testunit capybara

4
推荐指数
1
解决办法
2869
查看次数

如果调用Mechanize代理程序的read_timeout =,则返回ruby Fakeweb错误

我正在使用Mechanize来抓取一些网站.虽然我将页面保存到我稍后使用Fakeweb进行测试的文件中.

我的Mechanize代理以这种方式创建:

Mechanize.new do |a| 
  a.read_timeout = 20 # doesn't work with Fakeweb?
  a.max_history = 1 
end
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序启用Fakeweb来获取文件而不是实际的Internet访问时,我的日志会为我尝试的每个uri抛出这些消息

W, [2011-08-20T18:49:45.764749 #14526]  WARN -- : undefined method `read_timeout=' for #<FakeWeb::StubSocket:0xb72c150c>
Run Code Online (Sandbox Code Playgroud)

如果我在上面的代码(# a.read_timeout = 20 ...)中注释第二行,它就完美无缺.没问题.有关如何启用read_timout并使Fakeweb工作的任何想法?

TIA

ruby mechanize fakeweb

0
推荐指数
1
解决办法
802
查看次数

标签 统计

capybara ×1

fakeweb ×1

mechanize ×1

ruby ×1

ruby-on-rails ×1

shoulda ×1

testunit ×1