PHPUnit模拟连接函数

时间:2015-07-14 12:11:01

标签: unit-testing phpunit mockery

我正在写一些测试,我想知道如何模拟下一个连接的函数调用:

$validator->errors()->all()

我不需要错误集合,因为我希望它是emmpty,以便$this->logerror不被调用。

是否可以在一次通话中模拟$validator->errors()->all()

这样的东西
    Validator::shouldReceive('errors()->all()')
        ->once()
        ->andReturn(array());
Code:
// CLASS

    $validator = Validator::make(
            ['participant' => $participant'],
            $programValidator->getRules()
    );

    if($validator->fails()) {
        foreach($validator->errors()->all() as $error) {
           $this->logError($record, $error);
    }
// TEST
Validator::shouldReceive('make')
            ->once()
            ->andReturn(Mockery::mock(array('fails' => true)));

1 个答案:

答案 0 :(得分:0)

你试过了吗?

Validator::shouldReceive('errors->all')
    ->once()
    ->andReturn(array());

这个答案可能也很重要:https://stackoverflow.com/a/22435748/5072503