2016-08-12 8 views
0

Laravel 5.1に付属のPHPUnitを使用しています。私は 'UserTest.php'という名前のテストフォルダの下にPHPファイルを作成しています。私は、コマンド「PHPUnitの」を実行するたびにlaravel 5.1 - phpUnitクラスを文字列例外に変換することはできません

public function store() 
    { 
     $credentials = Input::only('name','email', 'password'); 

    try { 
     $user = User::create($credentials); 
    } catch (Exception $e) { 
     return Response::json(['error' => 'User already exists.'], HttpResponse::HTTP_CONFLICT); 
    } 

    $token = JWTAuth::fromUser($user); 

    return Response::json(compact('token')); 
    } 

:私は、次のコードを持っているサーバ側で

<?php 

use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class UserTest extends TestCase 
{ 
    /** 
    * A basic test example. 
    * 
    * @return void 
    */ 



     public function testRegistration() 
    { 
     echo $this->post('/user/register', ['password' => 'mypass', 
             'name' => 'Steve Robinson', 
             'email' => '[email protected]']); 
      /*->seeJson([ 
       'success' => true, 
      ]);*/ 


    } 

を次のようにファイルの内容です。 UserTestクラスのオブジェクトを文字列に変換できないというエラーがスローされます。ここで間違っていることを教えてください。

enter image description here

答えて

1

$this->post()$this->get()戻り$thisので、あなたはechoを使用して文字列に変換しようとしている、あなたは、応答の内容を取得するために$this->response->getContent()を使用する必要があります。

+0

ありがとう、それはうまくいきました。私はseeJsonを使用する方法を教えてください - > seeJson(['success' => true、]); 'foreach()'に無効な引数が指定されています。 @rypskar – logeeks

+0

私はseeJsonを使用していないので、問題が何であるかはわかりません。 jsonを返すとき、私は通常 '$ response = json_decode($ this-> response-> getContent());'を使い、別のプロパティで 'assertEquals'を使って正しいデータがあることを確認します – rypskar

関連する問題