質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

0回答

1309閲覧

java JUnit

aaa11

総合スコア14

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/04/18 15:12

編集2021/04/19 10:50

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaa11

2021/04/18 20:58

エラーではなくテスト失敗でした。
m.ts10806

2021/04/18 21:27

todoData  って定義されずに使われてませんか? そもそもコンパイル通らないように思うのですけど 何か省略してませんか?
aaa11

2021/04/19 10:50

記載ミスでしたので修正いたしました。
momon-ga

2021/04/20 01:19 編集

assertEquals(1, todo); が、テスト成功することは、ありえないと思いますが。 どのようなテストをしたいのでしょうか?
aaa11

2021/04/20 23:43

servisクラスのテストで戻り値がvoidの場合の比較の書き方がわからなかったのでそのような書き方をしてました。 mapperクラスからの戻り値がint型で更新が成功=1とservisクラスでvoidで戻り値なしの場合、1となればテスト成功、0となればテスト失敗となるようにしたいです。
aaa11

2021/04/21 00:52

更新するテストが1でテストを成功する場合と0で例外を発生させてテストを成功させるパターンの2つです。 url参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問