質問編集履歴
3
質問文を修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
1) Tests\Feature\
|
13
|
+
1) Tests\Feature\FormTest::testComplete
|
14
14
|
|
15
15
|
The expected [App\Mail\CustomerSent] mailable was sent 0 times instead of 1 times.
|
16
16
|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
/var/www/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:261
|
26
26
|
|
27
|
-
/var/www/tests/Feature/
|
27
|
+
/var/www/tests/Feature/FormTest.php:68
|
28
28
|
|
29
29
|
|
30
30
|
|
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
// ->type('test@sample.com', 'email')
|
50
50
|
|
51
|
-
// ->press('
|
51
|
+
// ->press('登録する')
|
52
52
|
|
53
53
|
// ->assertRedirect('/app/confirm');
|
54
54
|
|
@@ -70,19 +70,9 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
|
73
|
-
$response = $this->post('/app/confirm', $data)->assertRedirect();
|
74
|
-
|
75
|
-
|
73
|
+
Mail::assertSent(FormSent::class, 1);
|
76
74
|
|
77
75
|
|
78
|
-
|
79
|
-
// メールを1通送信したこと
|
80
|
-
|
81
|
-
Mail::assertSent(CustomerSent::class, 1);
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
// 期待通りのメールであること
|
86
76
|
|
87
77
|
// Mail::assertSent(Approved::class, function ($mail) {
|
88
78
|
|
@@ -92,11 +82,9 @@
|
|
92
82
|
|
93
83
|
|
94
84
|
|
95
|
-
//
|
85
|
+
// Mail::assertSent(FormSent::class);
|
96
86
|
|
97
|
-
// Mail::assertSent(CustomerSent::class);
|
98
|
-
|
99
|
-
Mail::assertSent(
|
87
|
+
Mail::assertSent(FormSent::class, function ($mail) use ($email) {
|
100
88
|
|
101
89
|
// $mail->build();
|
102
90
|
|
@@ -106,7 +94,7 @@
|
|
106
94
|
|
107
95
|
);
|
108
96
|
|
109
|
-
|
97
|
+
|
110
98
|
|
111
99
|
Mail::assertNotSent(Denied::class);
|
112
100
|
|
@@ -121,74 +109,6 @@
|
|
121
109
|
// });
|
122
110
|
|
123
111
|
|
124
|
-
|
125
|
-
}
|
126
|
-
|
127
|
-
```
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
```php
|
132
|
-
|
133
|
-
フォームで入力されたら走ります
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
public function complete(Request $request)
|
138
|
-
|
139
|
-
{
|
140
|
-
|
141
|
-
//backボタンが押された時の処理
|
142
|
-
|
143
|
-
$action = $request->get('action', '戻る');
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
$input = $request->except('action');
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
if($request->get('action') === '戻る') {
|
152
|
-
|
153
|
-
// back
|
154
|
-
|
155
|
-
return redirect()->action('CustomerController@form')
|
156
|
-
|
157
|
-
->withInput($input);
|
158
|
-
|
159
|
-
} else {
|
160
|
-
|
161
|
-
$customer = new Customer();
|
162
|
-
|
163
|
-
$customer->name = $request->name;
|
164
|
-
|
165
|
-
$customer->email = $request->email;
|
166
|
-
|
167
|
-
$customer->save();
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
//メール送信処理
|
172
|
-
|
173
|
-
$customerSent = Customer::make($request->all());
|
174
|
-
|
175
|
-
//.envまたはfrom()を使って送信元アドレスを指定しておくこと
|
176
|
-
|
177
|
-
Mail::to($request->email)
|
178
|
-
|
179
|
-
->send(new CustomerSent($customerSent));
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
// 二重送信対策
|
184
|
-
|
185
|
-
$request->session()->regenerateToken();
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
return view('form.complete');
|
190
|
-
|
191
|
-
}
|
192
112
|
|
193
113
|
}
|
194
114
|
|
2
追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -193,3 +193,57 @@
|
|
193
193
|
}
|
194
194
|
|
195
195
|
```
|
196
|
+
|
197
|
+
.envと.env.testingのメール部分は同一です
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
```
|
202
|
+
|
203
|
+
MAIL_MAILER=smtp
|
204
|
+
|
205
|
+
MAIL_HOST=smtp.mailtrap.io
|
206
|
+
|
207
|
+
MAIL_PORT=2525
|
208
|
+
|
209
|
+
MAIL_USERNAME=hoge
|
210
|
+
|
211
|
+
MAIL_PASSWORD=huga
|
212
|
+
|
213
|
+
MAIL_ENCRYPTION=tls
|
214
|
+
|
215
|
+
MAIL_FROM_ADDRESS=sample@sample.com
|
216
|
+
|
217
|
+
MAIL_FROM_NAME="${APP_NAME}"
|
218
|
+
|
219
|
+
```
|
220
|
+
|
221
|
+
phpunitは下記です。
|
222
|
+
|
223
|
+
```php
|
224
|
+
|
225
|
+
<php>
|
226
|
+
|
227
|
+
<env name="APP_ENV" value="testing"/>
|
228
|
+
|
229
|
+
<server name="BCRYPT_ROUNDS" value="4"/>
|
230
|
+
|
231
|
+
<server name="CACHE_DRIVER" value="array"/>
|
232
|
+
|
233
|
+
<env name="DB_CONNECTION" value="mysql" force="true"/>
|
234
|
+
|
235
|
+
<!-- <server name="DB_DATABASE" value=":memory:"/> -->
|
236
|
+
|
237
|
+
<server name="MAIL_MAILER" value="array"/>
|
238
|
+
|
239
|
+
<server name="QUEUE_CONNECTION" value="array"/>
|
240
|
+
|
241
|
+
<server name="SESSION_DRIVER" value="array"/>
|
242
|
+
|
243
|
+
<server name="TELESCOPE_ENABLED" value="false"/>
|
244
|
+
|
245
|
+
<!-- <server name="DB_DATABASE" value="test-db" force="true"/> -->
|
246
|
+
|
247
|
+
</php>
|
248
|
+
|
249
|
+
```
|
1
質問文を修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
ブラウザで入力した際はmailtrapで確認できたのですが、テストコードをを実行すると下記のようなエラーが出てしまい解決策が分からないのでこちらに投稿させていただきます。
|
4
4
|
|
5
|
-
mailableがうまく使えていないのかなと思うのと、
|
5
|
+
mailableがうまく使えていないのかなと思うのと、DB周りでも何か問題があるのかもしれませんが原因が特定できません。
|
6
6
|
|
7
7
|
```エラー文
|
8
8
|
|