Я хочу протестировать действие по обновлению в моем проекте rails.Функция работает хорошо, но когда я пытаюсь выполнить юнит-тестирование, она всегда не срабатывает.Вы можете помочь с этим?
Я новичок в рубине и юнит-тестировании.я пробовал с любой документацией, это все еще не решает этот тест.
это моя Content Controller
функция, которую я хочу проверить, я использую разрешение для аутентификации
before_action :require_login
def update
@content = Content.find(params[:id])
if @content.update(content_params)
flash[:notice] = 'success'
redirect_back fallback_location: root_path
else
flash[:notice] = 'fail'
redirect_back fallback_location: root_path
end
end
это мояContent Fixture
one:
id: '1'
about: 'about content'
privacy: 'privacy content'
terms: 'terms content'
это мой test_helper
ENV['RAILS_ENV'] ||= 'test'
require_relative '../config/environment'
require 'rails/test_help'
require 'clearance/test_unit'
class ActiveSupport::TestCase
fixtures :all
end
class ActionDispatch::IntegrationTest
def sign_in_as_user
user = User.create!(email: "example@example.com", password: "letmein")
post session_url, params: {
session: {
email: user.email,
password: user.password
}
}
end
end
И это мой тестовый код
test "should update content" do
sign_in_as_user
content = contents(:one)
put content_url(content), params: { about: { syarat: "updated about", privacy: "updated privacy", terms: "updated terms" } }
content.reload
assert_equal "updated about", content.about
assert_equal "updated privacy", content.privacy
assert_equal "updated terms", content.terms
end
Затем я запускаю тест rake test
это результат
Failure:
ContentControllerTest#test_should_update_content [/Users/abc/Documents/PROJECT/Apps/test-app/test/controllers/content_controller_test.rb:20]:
--- expected
+++ actual
@@ -1 +1 @@
-"updated about"
+"about content"