脚本宝典收集整理的这篇文章主要介绍了Mockery和PHPUnit:此模拟对象上不存在方法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP namespace stats\Test; use stats\jway\File; use stats\jway\Generator; class GeneratorTest extends \PHPUnIT_Framework_TestCase { public function tearDown() { \Mockery::close(); } public function testGeneratorFire() { $fileMock = \Mockery::mock('\stats\jway\File'); $fileMock->shouldReceive('put')->with('foo.txt','foo bar')->once(); $generator = new Generator($fileMock); $generator->fire(); } public function testGeneratorDoesNotOverwriteFile() { $fileMock = \Mockery::mock('\stats\jway\File'); $fileMock->shouldReceive('exists') ->once() ->andReturn(true); $fileMock->shouldReceive('put')->never(); $generator = new Generator($fileMock); $generator->fire(); } }
File.PHP:
class File { public function put($path,$content) { return file_put_contents($path,$content); } public function exists($file_path) { if (file_exists($file_path)) { return true; } return false; } }
Generator.PHP:
class Generator { PRotected $file; public function __construct(File $file) { $this->file = $file; } protected function getContent() { // simplified for demo return 'foo bar'; } public function fire() { $content = $this->getContent(); $file_path = 'foo.txt'; if (! $this->file->exists($file_path)) { $this->file->put($file_path,$content); } } }
因此,当我运行这些测试时,我收到以下消息:BadMethodCallException:Method … :: exists()在此模拟对象上不存在.
public function testGeneratorFire() { $fileMock = \Mockery::mock('\stats\jway\File'); $fileMock->shouldReceive('put')->with('foo.txt','foo bar')->once(); //Add the line below $fileMock->shouldReceive('exists')->once()->andReturn(false); $generator = new Generator($fileMock); $generator->fire(); }
以上是脚本宝典为你收集整理的Mockery和PHPUnit:此模拟对象上不存在方法全部内容,希望文章能够帮你解决Mockery和PHPUnit:此模拟对象上不存在方法所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。