Ruby on rails Rails测试失败,但系统正常工作

Ruby on rails Rails测试失败,但系统正常工作,ruby-on-rails,testing,tdd,Ruby On Rails,Testing,Tdd,update_计数器功能工作正常,报告正确,但测试失败。@prayer变量是指向数据库还是指向某个单独的fixture对象?我也试过@prayer=prayer.find(1),但结果相同。有什么想法吗 yml是: setup do @prayer = prayers(:one) end test "should update prayer count" do assert_difference('@prayer.count', 1) do get "updat

update_计数器功能工作正常,报告正确,但测试失败。@prayer变量是指向数据库还是指向某个单独的fixture对象?我也试过@prayer=prayer.find(1),但结果相同。有什么想法吗

yml是:

setup do
    @prayer = prayers(:one)
end

test "should update prayer count" do
    assert_difference('@prayer.count', 1) do
        get "update_counter", {:id => @prayer.id}
    end
    assert_redirected_to root_path
end

# Running tests:

counter updated and saved. Count is: 
1
F

Finished tests in 1.374664s, 0.7275 tests/s, 0.7275 assertions/s.

  1) Failure:
PrayersControllerTest#test_should_update_prayer_count [test/controllers/prayers_controller_test.rb:147]:
"@prayer.count" didn't change by 1.
Expected: 1
  Actual: 0

谢谢。

您可以尝试重新加载
方法:

one:
  id: 1
  prayer: Pray for nice weather
  count: 0
  user_id: 1

这会导致Rails重新加载
@prayer
从DB获取实际数据。

您可以尝试
重新加载
方法:

one:
  id: 1
  prayer: Pray for nice weather
  count: 0
  user_id: 1

这会导致Rails重新加载
@prayer
从DB获取实际数据。

FYI,通过GET请求在服务器上进行更改。谢谢。现在改为“post”(除非您坚持put),我想我在排除某些集成测试的故障时尝试了“get”。仅供参考,以便通过get请求在服务器上进行更改。谢谢。现在改为“post”(除非你坚持put),我想我在排除一些集成测试的故障时尝试了“get”。哇!太神了谢谢!哇!太神了谢谢!