ruby-on-rails – 了解突变失败
我有以下ActiveRecord模型类方法:
def self.find_by_shortlink(shortlink) find_by!(shortlink: shortlink) end 当我针对这种方法运行Mutant时,我被告知在测试运行后有17个突变,16个仍然“活着”. 这是“活”突变之一: ----------------------- 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 如果我手动进行同样的更改,我的测试会失败 – 正如预期的那样. 所以我的问题是:我如何编写一个“杀死”这个突变的单元测试? 解决方法
免责声明,突变作者发言.
这种情况下的迷你备忘单: >确保您的规格现在为绿色. >不可能? >(可能)将变异视为更好的代码. >发现行为更改:将其编码为测试,或更改测试以涵盖该行为. >重新运行突变体以验证突变的死亡. 现在来看你的情况:如果你将变异应用到你的代码中.参数被忽略并且基本上是硬编码的(键的值:你的finder中使用的短链接不会根据参数短链接而改变).因此,您在测试中唯一需要做的就是添加一个案例,其中参数短链接对您在测试中的期望很重要. 如果将self作为以下值传递:shortlink finder与传入您测试的当前参数具有相同的效果,请尝试使用其他参数.在AR中强制查找值可能很棘手,您的模型有可能强制使用您作为参数测试的相同值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |