Все мои тесты проходили до того, как я написал этот тест - после написания следующего теста это не удалось. Обычно тесты дают вам советы, где искать, чтобы исправить тест, но это только показывает:"Relationship.count" не изменился на 2. Ожидаемый: 6 Фактически: 4
FAIL["test_should_successfully_create_2_user_relationship_objects", RelationshipsControllerTest, 1.146038]
test_should_successfully_create_2_user_relationship_objects#RelationshipsControllerTest (1.15s)
"Relationship.count" didn't change by 2.
Expected: 6
Actual: 4
test/controllers/relationships_controller_test.rb:193:in `block in <class:RelationshipsControllerTest>'
74/74: [=====================================================================================================================] 100% Time: 00:00:01, Time: 00:00:01
Finished in 1.14952s
74 tests, 180 assertions, 1 failures, 0 errors, 0 skips
линия 193 является:
assert_difference 'Relationship.count', 2 do
, но я не знаю, где искать, чтобы это исправить. Я довольно новичок в Rails и понятия не имею, как решить эту проблему. Любые подсказки, где искать, будем очень благодарны! Я не уверен, как работает код, чтобы попробовать и выполнить тест, чтобы знать, с чего начать искать.
, насколько я могу судить, это соответствующий код:
relationships_controller_test.rb:
test "should successfully create 2 user relationship objects" do
assert_difference 'Relationship.count', 2 do
post :create, relationship: { followed_id: users(:firstname).name }
end
end
модель/relationship.rb:
# makes sure 2 relationships are created otherwise none are created.
def self.request(user1, user2)
transaction do
relationship1 = create!(follower: user1, followed: user2, state: 'pending')
relationship2 = create!(follower: user2, followed: user1, state: 'requested')
relationship1.send_request_email
relationship1
end
end
relationship_controller.rb:
def create
if params[:relationship] && params[:relationship].has_key?(:followed_id)
# @followed = User.find(params[:relationship][:followed_id])
@followed = User.where(name: params[:active_relationship][:followed_id]).first
@active_relationship = Relationship.request(current_user, @followed)
if @active_relationship.new_record?
flash[:danger] = "There was a problem creating that relationship request"
else
flash[:success] = "Friend request sent"
end
redirect_to followed_path(@followed)
else
flash[:danger] = "Friend Required"
redirect_to users_path
end
end
светильники/relationships.yml:
один: последователь: Firstname следовал: firstname3
два: последователь: Firstname следовал: firstname4
три: последователь: firstname3 следовал: Firstname
4: последователь: firstname2 следующее: имя