为了账号安全,请及时绑定邮箱和手机立即绑定

使用Mockery在模型中测试简单功能

使用Mockery在模型中测试简单功能

PHP
慕姐4208626 2021-04-28 10:10:17
我对Laravel中嵌入的Mockery完全陌生。我很难测试一个简单的模型函数,该函数会增加引用的一部分,无论我传递的用于测试结果的值是可以的,即使它应该失败也是如此。我认为我在某个地方出错了,或者我不理解文档。谢谢你的帮助。这是测试的简单功能public function incrementRefFormation(string $value):string{    $split = str_split($value);    $group1 = '';    for ($i=0;$i<11;$i++) {        $group1 .= $split[$i];    }    $group2 = $split[11].$split[12];    $group2 = (int)$group2;    $group2++;    return $group1.$group2.$split[13];}这是应该失败的测试public function testIncrementRefFormation(){    //$testValue = '1 332 8100 20S';    $testValue = '123456';    $expectedValue = '1332810021S';    $mock = Mockery::mock('App\Models\Formation');    $mock->shouldReceive(['incrementRefFormation' => $expectedValue])            ->once();    var_dump($mock->incrementRefFormation($testValue));}非常感谢!
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

Mockery用于创建“模拟”,这些模拟是仅执行您告诉他们的操作的哑对象(例如,方法x如果提供了参数z,则将返回y)。通常,它用于模拟要测试的类的依赖项。在您的情况下,您可能不需要它。


所以您的测试可能看起来像这样


$formation = new App\Models\Formation();

$actualvalue = $formation->incrementRefFormation($testValue);

$this->assertEquals($expectedValue, $actualvalue);


查看完整回答
反对 回复 2021-05-07
  • 1 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信