次の ActiveRecord モデル クラス メソッドがあります。
def self.find_by_shortlink(shortlink)
find_by!(shortlink: shortlink)
end
このメソッドに対して Mutant を実行すると、17 個のミューテーションがあり、テストの実行後も 16 個がまだ「生きている」と言われます。
「ライブ」ミューテーションの 1 つを次に示します。
-----------------------
evil:Message.find_by_shortlink:/home/peter/projects/kaboom/app/models/message.rb:29:3f9f2
@@ -1,4 +1,4 @@
def self.find_by_shortlink(shortlink)
- find_by!(shortlink: shortlink)
+ find_by!(shortlink: self)
end
これと同じ変更を手動で行うと、テストは失敗します-予想どおりです。
だから私の質問は、この突然変異を「殺す」単体テストをどのように書くのですか?