質問編集履歴

3

質問文を修正しました

2020/09/08 01:10

投稿

cacao86
cacao86

スコア97

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- 1) Tests\Feature\CustomerTest::testComplete
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/CustomerTest.php:68
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
- // $response->assertStatus(200);
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(CustomerSent::class, function ($mail) use ($email) {
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

追記しました。

2020/09/08 01:10

投稿

cacao86
cacao86

スコア97

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

質問文を修正しました

2020/08/27 14:37

投稿

cacao86
cacao86

スコア97

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