可以說我有兩個型號RSpec的我測試關係的雙方
class User < ActiveRecord::Base
has_many :friendships, :dependent => :destroy
has_many :followings, :through => :friendships, :foreign_key => "followed_id"
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :following, :class_name => "User", :foreign_key => "followed_id"
end
現在我user_spec.rb我有這個測試
it "should delete all friendships after user gets destroyed" do
@user.destroy
[@friendship].each do |friendship|
lambda do
Friendship.find(friendship)
end.should raise_error(ActiveRecord::RecordNotFound)
end
end
這是測試的正確的地方:dependent =>:銷燬關係,還是屬於friendship_spec.rb中,或者這對我測試的兩個規範中的哪一個無關緊要?
但這些測試只覆蓋了關係,而不是我刪除父記錄後的機制,對嗎?他們只是檢查,有一個有很多,依賴=>在我父母的摧毀和在我的孩子belongs_to? – daiikota
這是正確的,但這是你應該在應用中測試的所有東西 - 否則你正在測試Rails代碼本身,這超出了範圍。 Rails協會有他們自己的規格,並經過徹底測試。 – zetetic
所以這意味着我不測試如果子記錄被刪除,我只是測試,我已經實現了刪除子記錄的功能,如果父記錄被刪除 – daiikota