沃梦达 / 编程问答 / php问题 / 正文

为多个调用指定预期参数的嘲弄

Mockery specifying expected arguments for multiple calls(为多个调用指定预期参数的嘲弄)

本文介绍了为多个调用指定预期参数的嘲弄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I am trying to mock an object that gets two calls to the same function but with different arguments. It's pretty straight forward to give back different return values for multiple calls but I can't find anywhere how to do it with the argument validation.

I tried:

$this->eventDispatcher
    ->shouldReceive('dispatch')
    ->twice()
    ->with(Events::SELECT,Mockery::type('NotReallyANamespaceEvent'))
    ->with(Events::ACTIVITY,Mockery::type('NotReallyANamespaceEvent');

And

$this->eventDispatcher
        ->shouldReceive('dispatch')
        ->twice()
        ->with(
            [Events::SELECT,Mockery::type('NotReallyANamespaceEvent')],
            [Events::ACTIVITY,Mockery::type('NotReallyANamespaceEvent')]
        );

But they don't work.

From the output PHPUnit gives me it seems like I'm getting an array?

解决方案

Well that was fast ;P Apparently you can do this and it works just fine:

$this->eventDispatcher
    ->shouldReceive('dispatch')
    ->with(Events::SELECT,Mockery::type('NotReallyANamespaceEvent'));

$this->eventDispatcher
    ->shouldReceive('dispatch')
    ->with(Events::ACTIVITY,Mockery::type('NotReallyANamespaceEvent'); 

这篇关于为多个调用指定预期参数的嘲弄的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:为多个调用指定预期参数的嘲弄

基础教程推荐