PHPUnit:是否可以将模拟注入不在函数中的代码?

时间:2016-10-24 16:59:25

标签: mocking phpunit

假设我在函数之外有一些PHP代码:

<?php
// some code
SomeClass::some_function();
?>

是否可以模拟some_function

目前我的测试代码如下:

$mock = $this->getMockBuilder('SomeClass')
             ->setMethods(array('some_function'))
             ->getMock();
$mock->expects($this->once())
     ->method('some_function');

但我不知道如何将其注入前面的代码中。它甚至可能吗?如果没有,那么一个人应该如何测试这样的东西呢?

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。

要测试此代码,您实际上应该在浏览器中调用该页面并确保一切正常。像这样的代码并没有被嘲笑。像这样的代码测试更像是一个&#34;整合&#34;测试

要测试此代码,您需要一个额外的工具以及像Selenium这样的PHPUnit。 https://www.sitepoint.com/using-the-selenium-web-driver-api-with-phpunit/