4

次の 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

これと同じ変更を手動で行うと、テストは失敗します-予想どおりです。

だから私の質問は、この突然変異を「殺す」単体テストをどのように書くのですか?

4

1 に答える 1