PHPUnit 测试位于特征中的静态函数

在一段遗留代码中,我的任务是在这样的特征中测试静态函数:


namespace App\Model\SomeLogic;


trait WhyDecidedToUseTrait

{

   public static function aMethodThatDoesSomeFancyStuff()

   {

     //Method Logic

   }

}

并从使用该方法的这篇文档开始getMockForTrait。但是在我的情况下,为了测试静态函数而制作一个虚拟对象,其中对象瞬间是无用的,没有任何价值。


同样在使用此特征的对象中测试方法似乎非常耗时,而且进行更大规模的重构也很耗时。


那么我如何测试该特征以逐渐重构使用它的任何类?


千万里不及你
浏览 137回答 1
1回答

四季花海

只需使用此特性创建一个 Dummy 类:namespace Tests\YourTeasts;use PHPUnit\Framework\TestCase;use App\Model\SomeLogic\WhyDecidedToUseTrait;class Dummy{  use WhyDecidedToUseTrait;}class StoreExtraAttributesTraitTest extends TestCase{   public function setTheStaticMethod()   {      Dummy::aMethodThatDoesSomeFancyStuff();      //Assertions are done here   }}因此您可以测试该方法,但在覆盖测试的情况下,我不知道何时显示或不显示。
打开App,查看更多内容
随时随地看视频慕课网APP