Rails 教程 - 第 12.2.3 章集成测试失败 - 预期为真
Rails Tutorial - Chapter 12.2.3 Integration Test Failure - Expected True
我为此绞尽脑汁已经有一段时间了。我什至复制并粘贴了教程中的示例,所以我不确定自己做错了什么。如果对此有任何帮助,我将不胜感激。
到目前为止,我已经通过了所有测试。
我刚刚创建了集成测试 before listing 12.27
$ rails generate integration_test following
这是我的 test/fixtures/relationships.yml 文件(我在整个教程中一直使用 mochi 而不是 michael)。
one:
follower: mochi
followed: lana
two:
follower: mochi
followed: mallory
three:
follower: lana
followed: mochi
four:
follower: archer
followed: mochi
这是我的 test/integration/following_test.rb
require 'test_helper'
class FollowingTest < ActionDispatch::IntegrationTest
def setup
@user = users(:mochi)
log_in_as(@user)
end
test "following page" do
get following_user_path(@user)
assert_not @user.following.empty?
assert_match @user.following.count.to_s, response.body
@user.following.each do |user|
assert_select "a[href=?]", user_path(user)
end
end
test "followers page" do
get followers_user_path(@user)
assert_not @user.followers.empty?
assert_match @user.followers.count.to_s, response.body
@user.followers.each do |user|
assert_select "a[href=?]", user_path(user)
end
end
end
这是我在 运行 bundle exec rake test
时遇到的测试失败
$ bundle exec rake test
Run options: --seed 23507
# Running:
........................................................FF
Finished in 1.736838s, 33.3940 runs/s, 164.0913 assertions/s.
1) Failure:
FollowingTest#test_following_page [/app_path/test/integration/following_test.rb:12]:
Expected true to be nil or false
2) Failure:
FollowingTest#test_followers_page [/app_path/test/integration/following_test.rb:21]:
Expected true to be nil or false
58 runs, 285 assertions, 2 failures, 0 errors, 0 skips
如果有人对导致此失败的原因有任何想法,我将不胜感激。这让我发疯了。
@user.following.empty?
...返回真值。但是您期望它为 nil 或 false。
assert_not - Assert that an expression is not truthy. Passes if object is nil or false.
来自 here.
简而言之,@user.following 是空的。您的测试预计 而不是 。
检查您是否正确设置了用户灯具。如果您没有关系装置所需的用户,那么它根本无法工作。
检查 Michael Hartl 的 GitHub 用户固定装置,看看您是否拥有它们:
https://github.com/mhartl/sample_app_3rd_edition/blob/master/test/fixtures/users.yml
对我有用。
我为此绞尽脑汁已经有一段时间了。我什至复制并粘贴了教程中的示例,所以我不确定自己做错了什么。如果对此有任何帮助,我将不胜感激。
到目前为止,我已经通过了所有测试。
我刚刚创建了集成测试 before listing 12.27
$ rails generate integration_test following
这是我的 test/fixtures/relationships.yml 文件(我在整个教程中一直使用 mochi 而不是 michael)。
one:
follower: mochi
followed: lana
two:
follower: mochi
followed: mallory
three:
follower: lana
followed: mochi
four:
follower: archer
followed: mochi
这是我的 test/integration/following_test.rb
require 'test_helper'
class FollowingTest < ActionDispatch::IntegrationTest
def setup
@user = users(:mochi)
log_in_as(@user)
end
test "following page" do
get following_user_path(@user)
assert_not @user.following.empty?
assert_match @user.following.count.to_s, response.body
@user.following.each do |user|
assert_select "a[href=?]", user_path(user)
end
end
test "followers page" do
get followers_user_path(@user)
assert_not @user.followers.empty?
assert_match @user.followers.count.to_s, response.body
@user.followers.each do |user|
assert_select "a[href=?]", user_path(user)
end
end
end
这是我在 运行 bundle exec rake test
时遇到的测试失败$ bundle exec rake test
Run options: --seed 23507
# Running:
........................................................FF
Finished in 1.736838s, 33.3940 runs/s, 164.0913 assertions/s.
1) Failure:
FollowingTest#test_following_page [/app_path/test/integration/following_test.rb:12]:
Expected true to be nil or false
2) Failure:
FollowingTest#test_followers_page [/app_path/test/integration/following_test.rb:21]:
Expected true to be nil or false
58 runs, 285 assertions, 2 failures, 0 errors, 0 skips
如果有人对导致此失败的原因有任何想法,我将不胜感激。这让我发疯了。
@user.following.empty?
...返回真值。但是您期望它为 nil 或 false。
assert_not - Assert that an expression is not truthy. Passes if object is nil or false.
来自 here.
简而言之,@user.following 是空的。您的测试预计 而不是 。
检查您是否正确设置了用户灯具。如果您没有关系装置所需的用户,那么它根本无法工作。
检查 Michael Hartl 的 GitHub 用户固定装置,看看您是否拥有它们: https://github.com/mhartl/sample_app_3rd_edition/blob/master/test/fixtures/users.yml
对我有用。