function testPost()
 {
     $tester = new FunctionalTester(__DIR__ . '/data/');
     $this->specify('When request param is test=hogehoge', function () use($tester) {
         $response = $tester->post('index.php', ['test' => 'hogehoge']);
         $this->assertEquals(json_decode($response->getBody(), true)['post'], ['test' => 'hogehoge']);
     });
     $this->specify('session is test=hogehoge', function () use($tester) {
         $tester->setSession(['test' => 'hogehoge']);
         $response = $tester->post('index.php');
         $this->assertEquals(json_decode($response->getBody(), true)['session'], ['test' => 'hogehoge']);
     });
     $this->specify('session and post parameters are specified', function () use($tester) {
         $tester->setSession(['test' => 'hogehoge']);
         $response = $tester->post('index.php', ['test' => 'hogehoge']);
         $this->assertEquals(json_decode($response->getBody(), true)['session'], ['test' => 'hogehoge']);
         $this->assertEquals(json_decode($response->getBody(), true)['post'], ['test' => 'hogehoge']);
     });
     $this->specify('when upload files', function () use($tester) {
         $response = $tester->post('fileupload.php', ['test' => 'hogehoge'], [], [['name' => 'test', 'filename' => 'test.txt', 'contents' => 'hogehoge', 'type' => 'text/plain']]);
         $this->assertEquals(json_decode($response->getBody(), true)['files']['test']['name'], 'test.txt');
         $this->assertEquals(json_decode($response->getBody(), true)['post'], ['test' => 'hogehoge']);
     });
 }