質問編集履歴

5

追記

2022/03/10 11:06

投稿

Maruco2321
Maruco2321

スコア118

test CHANGED
File without changes
test CHANGED
@@ -36,12 +36,16 @@
36
36
  'password' => 'test1234',
37
37
  'password_confirmation' => 'test1234',
38
38
  ];
39
+ (追記2でコメント機能解除)
40
+ // dd($data);
39
41
  // 会員登録をroutes/api.php にルート定義
40
42
  // Route::post('/register', 'Auth\RegisterController@register')->name('register');
41
43
  // コントローラーの影響でここで @register → RegistersUsers トレイトの register メソッド
42
44
  //  → @registeredが必要→registeredを書き込む。これによって$dataが登録用データとして送られる
43
45
  // RegisterController で registered メソッドの中身をオーバーライド
44
46
  // $dataを送る
47
+ (追記2でコメント機能解除)
48
+ // dd($response);
45
49
  $response = $this->json('POST', route('register'), $data);
46
50
 
47
51
 
@@ -196,3 +200,84 @@
196
200
  'prefix' => '',
197
201
  ],
198
202
  ```
203
+
204
+ 追記2
205
+ dd()を利用して調べてみたのですがコメントが長すぎることもあるので重要そうな部分を抜粋して載せて行きたいと思います🙇‍♂️dd()の場所とその内容は上記のテストコードにわかりやすいように記述しておきたいと思います。
206
+ ```
207
+ dd($data);の場合
208
+
209
+ root@bf0269c31cae:/var/www/html# ./vendor/bin/phpunit tests/Feature/RegisterApiTest.php
210
+ PHPUnit 9.5.16 by Sebastian Bergmann and contributors.
211
+
212
+ array:4 [
213
+ "name" => "user"
214
+ "email" => "dummy@email.com"
215
+ "password" => "test1234"
216
+ "password_confirmation" => "test1234"
217
+ ]
218
+ root@bf0269c31cae:/var/www/html#
219
+
220
+
221
+ dd($response);の場合
222
+
223
+ lluminate\Foundation\Testing\TestResponse^ {#1169
224
+ +baseResponse: Illuminate\Http\JsonResponse^ {#1209
225
+ #data: """
226
+ {\n
227
+ "message": "The POST method is not supported for this route. Supported methods: GET, HEAD.",\n
228
+ "exception": "Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException",\n
229
+ "file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",\n
230
+ "line": 256,\n
231
+ "trace": [\n
232
+ {\n
233
+
234
+
235
+
236
+ """
237
+ #version: "1.0"
238
+ #statusCode: 405
239
+ #statusText: "Method Not Allowed"
240
+ #charset: null
241
+ +original: array:5 [
242
+ "message" => "The POST method is not supported for this route. Supported methods: GET, HEAD."
243
+ "exception" => "Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException"
244
+ "file" => "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php"
245
+ "line" => 256
246
+ "trace" => array:32 [
247
+
248
+
249
+
250
+ +exception: Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException^ {#1185
251
+ -statusCode: 405
252
+ -headers: array:1 [
253
+ "Allow" => "GET, HEAD"
254
+ ]
255
+ #message: "The POST method is not supported for this route. Supported methods: GET, HEAD."
256
+ #code: 0
257
+ #file: "./vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php"
258
+ #line: 256
259
+ trace: {
260
+
261
+
262
+ ./vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:442 { …}
263
+ ./tests/Feature/RegisterApiTest.php:34 {
264
+ Tests\Feature\RegisterApiTest->should_新しいユーザーを作成して返却する()^
265
+ › // dd($data);
266
+ › $response = $this->json('POST', route('register'), $data);
267
+
268
+ arguments: {
269
+ $method: "POST"
270
+ $uri: "http://localhost/127.0.0.1/api/register"
271
+ $data: array:4 [ …4]
272
+ }
273
+ }
274
+
275
+
276
+ }
277
+ }
278
+ #streamedContent: null
279
+ }
280
+ root@bf0269c31cae:/var/www/html#
281
+
282
+ ```
283
+

4

追記

2022/03/10 01:10

投稿

Maruco2321
Maruco2321

スコア118

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,5 @@
1
- マルチポストしているのですがよろしくお願いします。
1
+ マルチポストしているのですが質問内容などは随時記述して行きたいと思いますのでよろしくお願いします。
2
+
2
3
  MacOSで
3
4
  * __PHP 7.4.1__
4
5
  * __Laravel 6.20.26__

3

追記

2022/03/10 01:07

投稿

Maruco2321
Maruco2321

スコア118

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,4 @@
1
+ マルチポストしているのですがよろしくお願いします。
1
2
  MacOSで
2
3
  * __PHP 7.4.1__
3
4
  * __Laravel 6.20.26__

2

追記

2022/03/09 23:07

投稿

Maruco2321
Maruco2321

スコア118

test CHANGED
File without changes
test CHANGED
@@ -168,3 +168,29 @@
168
168
  ```
169
169
  とあったのでここは問題ないと思います
170
170
 
171
+ PHPUnit.xml
172
+ ```ここに言語を入力
173
+ コード
174
+ <php>
175
+ <env name="APP_ENV" value="testing"/>
176
+ <env name="DB_CONNECTION" value="sqlite_testing"/>
177
+ <server name="BCRYPT_ROUNDS" value="4"/>
178
+ <server name="CACHE_DRIVER" value="array"/>
179
+ <server name="DB_CONNECTION" value="sqlite"/>
180
+ <server name="DB_DATABASE" value=":memory:"/>
181
+ <server name="MAIL_DRIVER" value="array"/>
182
+ <server name="QUEUE_CONNECTION" value="sync"/>
183
+ <server name="SESSION_DRIVER" value="array"/>
184
+ </php>
185
+ ```
186
+ config/database.php
187
+ ```ここに言語を入力
188
+ コード
189
+ 'connections' => [
190
+ //追加
191
+ 'sqlite_testing' => [
192
+ 'driver' => 'sqlite',
193
+ 'database' => ':memory:',
194
+ 'prefix' => '',
195
+ ],
196
+ ```

1

追記

2022/03/09 23:03

投稿

Maruco2321
Maruco2321

スコア118

test CHANGED
File without changes
test CHANGED
@@ -46,11 +46,11 @@
46
46
  $user = User::first();
47
47
  (1回目のテスト,ここがエディターの37行目に当たります)
48
48
  $this->assertEquals($data['name'], $user->name);
49
- (2回目のテスト)
49
+ (2回目のテストで上を省略)
50
50
  //$this->assertEquals($data['name'], $user->name);
51
51
 
52
52
  $response
53
- (2回目のテスト,ここがエディターの40行目に当たります)
53
+ (ここが2回目のテストにおけるエディターの40行目に当たります)
54
54
  ->assertStatus(201)
55
55
  ->assertJson(['name' => $user->name]);
56
56
  }
@@ -148,3 +148,23 @@
148
148
 
149
149
  を記述しています
150
150
  どこで見落としているのかがわからないでいます。よろしくお願いします🙇‍♂️
151
+
152
+ ### 追記
153
+ laravel6.0での
154
+ $response = $this->json('POST', route('register'), $data);
155
+ の書き方がおかしいのかな?と考えたのですが6系のドキュメントにおいて(https://readouble.com/laravel/6.x/ja/http-tests.html)
156
+ ```ここに言語を入力
157
+ コード
158
+ public function testBasicExample()
159
+ {
160
+ $response = $this->json('POST', '/user', ['name' => 'Sally']);
161
+
162
+ $response
163
+ ->assertStatus(201)
164
+ ->assertExactJson([
165
+ 'created' => true,
166
+ ]);
167
+ }
168
+ ```
169
+ とあったのでここは問題ないと思います
170
+