質問編集履歴
5
追記
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
追記
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
追記
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
追記
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
追記
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
|
-
(
|
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
|
+
|