当前位置:  开发笔记 > 编程语言 > 正文

如何告诉PIT不要改变代码的某些特定部分?

如何解决《如何告诉PIT不要改变代码的某些特定部分?》经验,为你挑选了1个好方法。

碰巧有时代码或方法行不能产生任何相关测试会杀死的突变体.(例如,我可能正在使用null模式对象,并且一些实现的方法与prod无关,因此任何实现(甚至抛出)都是正确的).

能够告诉坑以避免它们(以便突变覆盖范围更相关)会很好,但我找不到在文档中做到这一点的方法.

有办法吗?



1> henry..:

PIT目前有三种机制可以过滤掉代码.

    按类使用excludedClasses参数

    通过方法使用 excludedMethods

    使用自定义变异过滤器

对于您的用例,它听起来像选项1适合.

选项2仅允许在所有类中过滤方法(这最常用于防止toString或hashcode方法中的突变).

选项3有点涉及,但允许您(例如)过滤掉具有特定注释的方法.

现在已经请求过几次注释过滤,最终可能会添加主代码库.它的主要问题是概念性问题,因为它要求您在测试问题上污染生产代码.


一边说.

我不遵循你的空对象模式的例子.

null对象需要实现接口的所有方法,并且期望它们被调用.如果他们扔掉这将打破这种模式.

在模式的最常见版本中,方法将为空,因此除了返回值之外没有任何变异.

这种行为值得用测试来描述.如果您的null对象无法返回任何被认为是中性的值,则会导致问题.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有