我有以下方法返回自己以允许方法链接。
class MyClass
{
public function myMethod()
{
// Do something
return $this;
}
}
现在,当我测试这种方法时,一切都好。但PHPUnit代码覆盖率告诉我,最后一行,即返回,未经过测试:"返回$ this",infact,标记为红色和。
在我的测试中,我使用它测试该方法返回自己:
public function testMyMethod()
{
$myClass = new MyClass;
// Test that returns true if properly set
$result = $myClass->myMethod();
$this->assertInstanceOf('MyClass', $result);
}
测试明显通过,但返回行标记为红色,覆盖率报告显示该方法未经过全面测试。
我怎样才能到达" All Green"酒吧?
答案 0 :(得分:0)
无论如何,这些报告可以更好地理解"健康"一个班级。
我没有在单元测试中导航(这是我第一次真正尝试在真实项目中使用它),但我已经阅读了很多关于它并发现了同样的想法:测试测试不是一件好事。好的,我们都同意这一点。
但我的问题来自另一个考虑因素:如果单位测试对于健康"健康"代码库,我认为这个代码共享时也很有用(或者我会在很长一段时间后重构它:我会使用很多注释!):另一个开发者可以看到我做了什么,哪些测试我写了,并决定自己测试更多。
所以,看到一个"而不是绿色栏",让新开发人员检查代码,看看他是否可以改进测试,只是发现它已经过测试,并且"未完成BAR"只是由一个"问题"生成(一般来说)在现实中是微不足道的。
在我看来,这是浪费时间:这就是让我到达绿色酒吧的原因"。
无论如何,回到这个问题,我想我已经找到了问题的原因。 返回$ this对于使方法能够在彼此之间链接是有用的。 所以,我没有到达绿色栏,因为我的测试没有链接这些方法,所以"返回$ this"从未测试的地方。
当我测试一些其他使用链接的方法时,未完全测试的"方法,然后"返回$ this"测试结果。
这导致我到达绿色酒吧!现在我已经得到了它,我也确信测试也可以测试链接工作(这是一件好事)。