ruby-on-rails – 了解突变失败

ruby-on-rails – 了解突变失败,第1张

概述我有以下ActiveRecord模型类方法: def self.find_by_shortlink(shortlink) find_by!(shortlink: shortlink)end 当我针对这种方法运行Mutant时,我被告知在测试运行后有17个突变,16个仍然“活着”. 这是“活”突变之一: -----------------------evil:Message.find_by_ 我有以下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中强制查找值可能很棘手,您的模型有可能强制使用您作为参数测试的相同值.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 了解突变失败全部内容,希望文章能够帮你解决ruby-on-rails – 了解突变失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1276630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存