0

私は PhpSpec を使用していますが、何らかの理由で依存関係をモックしてwillReturnPhpSpec のメソッドを呼び出すとnull、渡された値の代わりに値が返されます。

これが私が説明しようとしている方法です

    /**
     * Register an User
     *
     * @param array $infoUser
     * @return User
     */
    public function register(array $infoUser)
    {

        $user = $this->user->create($infoUser);

        $this->raise(new UserRegistered($user));

        return $user;
    }

私の仕様

class BaseAuthSpec extends ObjectBehavior
{
    function it_is_initializable()
    {
        $this->shouldHaveType('Core\Auth\BaseAuth');
    }

    function let(AuthManager $guard,UserAuthRepository $user)
    {
        $this->beConstructedWith($guard,$user);
    }

    function it_register_an_user(UserAuthRepository $useRepo)
    {
        $user = [
            'username' => 'fabri',
            'email'    => 'test@test.com',
            'password' => 'password',
            'repeat_password' => 'password'
        ];

        $userModel = new User($user);

        // this line return null instead the $userModel
        $useRepo->create($user)->shouldBeCalled()->willReturn($userModel);

        $this->raise(new UserRegistered($userModel))->shouldReturn(null);

        $this->register($user)->shouldReturn($userModel);
    }
}

私はこの問題で立ち往生しています。どんな提案もいただければ幸いです。

4

1 に答える 1