JUnit初心者で勉強しています。
Serviceクラスを更新系の戻り値のない単体テストしたいのですが書き方がわからなくて困っています。
下記のように書きましたがテストが失敗となります。どなたか教えていただけませんか?
java
1 class TodoServiceImplTest { 2 3 @ExtendWith(MockitoExtension.class) 4 @DisplayName("TodoServiceImplの単体テスト") 5 class TodoServiceImplTest extends TodoServiceImpl { 6 7 //ダミーオブジェクト(インターフェイス) 8 @Mock 9 private TodoRepository mapper; 10 11 //テストを行う対象クラス モックを探す newする 12 @InjectMocks 13 private TodoServiceImpl service; 14 15 public Todo todo; 16 17 @BeforeEach 18 public void createNewTodo() { 19 todo = new Todo(); 20 } 21 22 @Test 23 @DisplayName("1件のタスクが登録できたか確認するテスト") 24 25 void testRegistTodo() { 26 todo = getTodoData(); 27 28 when(mapper.registTodo(todo)).thenReturn(1); 29 30 service.registTodo(todoData); 31 32 //モックの指定メソッドの実行回数を検査 33 verify(mapper,times(1)).registTodo(todo); 34 35 assertEquals(1, todo); 36 } 37 38 private Todo getTodoData(){ 39 Todo todo = new Todo(); 40 todo.setId(1); 41 todo.setDay("day"); 42 todo.setTime("time"); 43 todo.setTitle("title"); 44 todo.setComment("comment"); 45 return todo; 46 } 47}
java
1@Data 2public class Todo implements Serializable{ 3 4 private static final long serialVersionUID = 1L; 5 6 private int id; 7 8 private String day; 9 10 private String time; 11 12 private String title; 13 14 private String comment; 15}
java
1 2 @Mapper 3 public interface TodoRepository { 4 5 public int registTodo(Todo todo); 6 7 public int updateTodo(Todo todo); 8 9 public int deleteTodo(int id); 10 11}
java
1 @Service 2 public class TodoServiceImpl implements TodoService { 3 4 @Autowired 5 private TodoRepository mapper; 6 @Override 7 @Transactional 8 public void registTodo(Todo todo) { 9 if(mapper.registTodo(todo) == 0) { 10 throw new NotFoundException("登録するタスクが存在しません"); 11 } 12 } 13 @Override 14 @Transactional 15 public void updateTodo(Todo todo) { 16 if(mapper.updateTodo(todo) == 0) { 17 throw new NotFoundException("更新するタスクが存在しません"); 18 } 19 } 20 21 @Override 22 @Transactional 23 public void deleteTodo(int id) { 24 if(mapper.deleteTodo(id) == 0) { 25 throw new NotFoundException("削除するタスクが存在しません"); 26 } 27 } 28
あなたの回答
tips
プレビュー