質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

1回答

849閲覧

laravel テストコードのエラーについて

miki.kato

総合スコア10

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2019/04/09 11:44

laravel test でのエラーについて

今、laravelで実装しているものがあるのですが、circleciでエラーがでています。。

発生している問題・エラーメッセージ

1) Tests\Feature\App\NoteCommentTest::testStore Expected status code 200 but received 500. Failed asserting that false is true. /home/circleci/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php:78 /home/circleci/laravel/tests/Feature/App/NoteCommentTest.php:71

該当のソースコード

public function testStore() { $groupId = 1; $note = Note::where('group_id', $groupId)->first(); $data = [ 'group_id' => $groupId, 'comment_text' => 'こめんと', 'user_id' => 1, 'comment_type' => 1, ]; $data2 = [ 'group_id' => $groupId, 'comment_text' => 'こめんと', 'user_id' => 1, 'comment_type' => 2, ]; /** * 未ログイン */ $response = $this->json('POST', '/api/notes/'.$note->note_id.'/comments', $data); // 未ログインなので、status 400で終わればOK $response->assertStatus(400); /** * ログイン済み */ $this->withHeaders(static::$token_header); $response = $this->json('POST', '/api/notes/'.$note->note_id.'/comments', $data); $response->assertStatus(200); $response = $this->json('POST', '/api/notes/'.$note->note_id.'/comments', $data2); $response->assertStatus(200); ・・・・・・

試したこと

今回、target_user_idというカラムを追加しているのですが、
$data2の配列に追加してあげないとエラーがでるのかな?と思っております。。
circleciの使い方も含めてご教示いただけると幸いです。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xenbeat

2019/04/10 08:18

500なのでそのAPIに関連するコードを提示しないと誰も的確な回答ができないと思いますよ。 > circleciの使い方も含めてご教示いただけると幸いです 漠然としすぎです。 https://teratail.com/help/question-tips
guest

回答1

0

500エラーになっていますね。

/api/notes/'.$note->note_id.'/commentsのエンドポイントで実行される処理に対して、
dd() を設定して、デバッグしていくのが、解決しやすいですよ。

一応dd()のドキュメントを置いておきます。
https://readouble.com/laravel/5.5/ja/helpers.html#method-dd

また蛇足ですが、「ローカルではテスト通る、CircleCI上ではテストが通らない」と言った時には、CircleCIはローカルでも実行できます。
参考:https://qiita.com/ieee0824/items/28c7fa9e69cfc6ee7075

投稿2019/04/12 18:55

編集2019/04/12 19:23
hhiroki

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問