9

最初に、私が言いたいのは、私は PHP (phpunit) での単体テストの初心者です。新しいプロジェクト (slim3 フレームワーク) で、LoginController などのコントローラーをテストしたいと思います。

私の考えは(単体テスト方法で)

  • のインスタンスを作成LoginController
  • コントローラーでいくつかのサービスをモックする (DI)
  • リクエストに対する応答であるメソッドを実行します(私のコントローラーメソッド内__invoke

私の問題は、メソッドのパラメーターに関する__invokeものです。Slim3 では、リクエストの呼び出し可能なメソッドには 2 つの最初のパラメーターがあります。

RequestInterface $requestResponseInterface $response

単体テスト クラスでこのパラメーターを作成するにはどうすればよいですか? この問題の例をいくつか探していましたが、成功しませんでした。

助言がありますか?

Slim3 テストで、リクエストをモックするコードをいくつか見つけました。

protected function requestFactory()
{
    $uri = Uri::createFromString('https://example.com:443/foo/bar?abc=123');
    $headers = new Headers();
    $cookies = array(
        'user' => 'john',
        'id' => '123',
    );
    $env = Slim\Http\Environment::mock();
    $serverParams = $env->all();
    $body = new Body(fopen('php://temp', 'r+'));
    $request = new Request('GET', $uri, $headers, $cookies, $serverParams, $body);

    return $request;
}

しかし、それが良い方法かどうかはわかりません。

助けてくれてありがとう

4

1 に答える 1