Dav*_*cht 7 php phpunit unit-testing cakephp cakephp-3.0
我最近在一个基于CakePhp 3.x的应用程序的IntegrationTestCase中将PHPunit从5.3更新到5.5.我不明白如何更新我的模拟生成脚本.
最初我创建了这样的模拟:
$stub = $this->getMock('SomeClass', array('execute'));
$stub->method('execute')
->will($this->returnValue($this->returnUrl));
Run Code Online (Sandbox Code Playgroud)
更改为PHPUnit 5.5后,这给我发出以下警告:
PHPUnit_Framework_TestCase::getMock() is deprecated,
use PHPUnit_Framework_TestCase::createMock()
or PHPUnit_Framework_TestCase::getMockBuilder() instead
Run Code Online (Sandbox Code Playgroud)
为了修复此警告,我将模拟生成更改为:
$stub = $this->getMockBuilder('SomeClass', array('execute'))->getMock();
$stub->method('execute')
->will($this->returnValue($this->returnUrl));```
Run Code Online (Sandbox Code Playgroud)
现在,我在运行测试时收到以下错误消息:
exception 'PHPUnit_Framework_MockObject_RuntimeException'
with message 'Trying to configure method "execute" which cannot be
configured because it does not exist, has not been specified,
is final, or is static'
Run Code Online (Sandbox Code Playgroud)
有谁知道,如何避免这个错误?谢谢.
ndm*_*ndm 18
PHPUnit_Framework_TestCase::getMockBuilder()只需要一(1)个参数,即类名.模拟的方法是通过返回的模拟构建器对象setMethods()方法来定义的.
$stub = $this
->getMockBuilder('SomeClass')
->setMethods(['execute'])
->getMock();
Run Code Online (Sandbox Code Playgroud)
也可以看看
| 归档时间: |
|
| 查看次数: |
11805 次 |
| 最近记录: |