首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mockery\Exception\NoMatchingExpectationException:没有为Mockery_1_::make找到匹配的处理程序

Mockery\Exception\NoMatchingExpectationException:没有为Mockery_1_::make找到匹配的处理程序
EN

Stack Overflow用户
提问于 2020-03-03 12:20:36
回答 1查看 3.1K关注 0票数 2

我编写了这个测试,返回以下错误:

(没有为Mockery_1_My_Class::make(array('valid_until'=>'2020-03-04',找到匹配的处理程序))。该方法可能是意外的,或者其参数与此方法的预期参数列表不匹配。

现在,我的测试中包含了以下代码:

代码语言:javascript
复制
$rateValidator->shouldReceive('make')->once()
            ->withArgs([$attributes])->andReturn(mockery::self());

$rateValidator->shouldReceive('addContext')
            ->withArgs(['update_rate_validity'])->andReturn(mockery::self());

这是这个测试正在测试的代码:

代码语言:javascript
复制
$attributes = [
    'valid_until' => $command->validUntilDate
];

$validator = $this->rateValidator->make($attributes)->addContext('update_rate_validity');

我在这里做错什么了?对我来说,唯一的问题可能是arguments ($attributes),即make正在接收的方法,但我不知道这可能是什么?

EN

回答 1

Stack Overflow用户

发布于 2022-07-18 13:26:09

您需要确定您作为模拟发送的数据。通过调用函数发送的数据类型和预期的数据类型必须相同。

例如:您的函数期望数据如下:

代码语言:javascript
复制
[
'test' => 'test',
]

您必须发送相同的数据才能通过模拟运行。

代码语言:javascript
复制
$validator->shouldReceive('theFunction')->with(['test' => 'test'])->andRetun('xx');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60507150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档