我需要以下问题的答案吗?感染框架会将代码的变异版本保存在哪里?在操作内存中?以及它一般如何工作?
答案 0 :(得分:0)
它将“变异的”文件保存在临时目录中的某个位置,然后安装a stream wrapper来拦截文件操作passing a modified file in place of the original。当测试试图自动加载要测试的类时,它会收到一个内容稍有不同的文件,因此,我们可以查看测试是否要看到所做的更改(突变被杀死),否(突变)逃脱)。
这里是a unit test for the stream wrapper used。流包装器必须非常冗长,因为PHP中没有标准的流包装器,您只能覆盖实际需要的几个函数only an interface to implement。