質問編集履歴

1

追記

2021/11/04 04:51

投稿

chikara
chikara

スコア6

test CHANGED
File without changes
test CHANGED
@@ -94,4 +94,82 @@
94
94
 
95
95
  ```
96
96
 
97
+
98
+
97
- UploadFileServiceクラスsaveFile()メソッド内でfileEをインスタンス化して
99
+ UploadFileServiceクラスsaveFile()メソッド内でfileEをインスタンス化してリポジトリに保存しているのですが
100
+
101
+ テストの時にどう書いたらいいのかわからないです。
102
+
103
+ 試しに書いたテストコードが下記になります。
104
+
105
+ ```java
106
+
107
+ @SpringJUnitConfig
108
+
109
+ public class UploadFileServiceTest {
110
+
111
+ @TestConfiguration
112
+
113
+ static class Config{
114
+
115
+ @Bean
116
+
117
+ public UploadFileService uploadFileService() {
118
+
119
+ return new UploadFileService();
120
+
121
+ }
122
+
123
+ }
124
+
125
+ @Autowired
126
+
127
+ private UploadFileService uploadFileService;
128
+
129
+
130
+
131
+ @MockBean
132
+
133
+ private FileRepository fileRepository;
134
+
135
+
136
+
137
+ @Test
138
+
139
+ public void testSaveFile() {
140
+
141
+ Blog blog=new Blog();
142
+
143
+ FileEntity file=new FileEntity();
144
+
145
+ List<MultipartFile> files=new ArrayList<>();
146
+
147
+ files.add(new MockMultipartFile("file", "test.text","text/plain","Spring Framework".getBytes()));
148
+
149
+ uploadFileService.saveFile(files,blog);
150
+
151
+ verify(fileRepository).save(file);
152
+
153
+ }
154
+
155
+ }
156
+
157
+ ```
158
+
159
+ UploadFileServiceクラスのsaveFileメソッドを呼び出して引数にファイルとブログオブジェクトを渡したらfileRepositoryクラスのsaveメソッドが呼び出されることをテストしたいのですが、
160
+
161
+ 上記テストコードだと「fileとsaveFileされたオブジェクトは違うものです」って出ます。
162
+
163
+ uploadFileService.saveFile(files,blog)でインスタンス化されたオブジェクトを取り出してsave()に入れたらいいと思うのですが、どう書けばいいのかわからないです。
164
+
165
+ ご教授宜しくお願い致します。
166
+
167
+
168
+
169
+ 開発環境
170
+
171
+ spring boot 2.2.12
172
+
173
+ java 8
174
+
175
+ mariaDB 10.4.17