【问题标题】:issue running rake test chapter 7发布运行 rake 测试第 7 章
【发布时间】:2014-11-26 10:18:09
【问题描述】:

我正在尝试在示例应用程序上运行 rake 测试,但出现 1 个错误,我似乎无法改变。

`ERROR["test_invalid_signup_information", UsersSignupTest, 0.717775303]     test_invalid_signup_information#UsersSignupTest (0.72s)ArgumentError:         ArgumentError: unknown     command 'v'            test/integration/users_signup_test.rb:15:in `test'                test/integration/users_signup_test.rb:15:in `block in <class:UsersSignupTest>'            test/integration/users_signup_test.rb:15:in `test'        test/integration/users_signup_test.rb:15:in     `block in <class:UsersSignupTest>'
  16/16: [=] 100% Time: 00:00:00, Time: 00:00:00

Finished in 0.72207s
16 tests, 34 assertions, 0 failures, 1 errors, 0 skips1

它似乎指向了我在下面粘贴的 users_signup 页面。

`require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

  test "invalid signup information" do
    get signup_path
    assert_no_difference 'User.count' do
      post users_path, user: { name:  "",
                               email: "user@invalid",
                               password:              "foo",
                               password_confirmation: "bar" }
    end
    assert_template 'users/new'

  test "valid signup information" do
    get signup_path
    name     = "Example User"
    email    = "user@example.com"
    password = "password"
    assert_difference 'User.count', 1 do
      post_via_redirect users_path, user: { name:  name,
                                            email: email,
                                            password:              password,
                                            password_confirmation: password }
    end
    assert_template 'users/show'
    end
  end
end

任何人都可以看到错误吗?

【问题讨论】:

  • 在第一次测试中看起来缺少end,并且在require(第一行)旁边是否有一个错误的""`?
  • 添加了额外的“结束”标签,现在测试失败,因为结束标签太多。
  • 我遇到了类似的问题,但这是因为我做了一个post 而不是post_via_redirect

标签: ruby-on-rails rake-test


【解决方案1】:

也许是因为你没有关闭第一个测试的控制流结构?缺少一个end

试试这样的代码:

require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

  test "invalid signup information" do
    get signup_path
    assert_no_difference 'User.count' do
      post users_path, user: { name:  "",
                               email: "user@invalid",
                               password:              "foo",
                               password_confirmation: "bar" }
    end
    assert_template 'users/new'
  end

  test "valid signup information" do
    get signup_path
    name     = "Example User"
    email    = "user@example.com"
    password = "password"
    assert_difference 'User.count', 1 do
      post_via_redirect users_path, user: { name:  name,
                                            email: email,
                                            password:              password,
                                            password_confirmation: password }
    end
    assert_template 'users/show'
  end
end

【讨论】:

  • 添加了额外的“结束”标签,现在测试失败,因为结束标签太多
猜你喜欢
  • 2015-05-12
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 2014-08-23
  • 2011-10-17
  • 2015-01-07
  • 2013-12-07
相关资源
最近更新 更多