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

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

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

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

Java

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

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

Spring Boot

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

Q&A

解決済

1回答

26992閲覧

JUnitによるAssertion errorの原因がわからない

soso0programmer

総合スコア35

JUnit

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

Java

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

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

Spring Boot

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

0グッド

0クリップ

投稿2020/08/26 03:10

現在、JUnitでテストを行っているのですが、エラーが解決できない状況です。

エラー文から判断すると、期待されている内容と値が違うと考えられるのですが、データを確認してみるとデータがあっているはずなのですがエラーが出てしまいます。

わかる方がいれば、エラーの原因をご教授ください。よろしくお願いします。

イメージ説明

DeploymentController

1package com.example.demo.controller; 2 3import java.text.SimpleDateFormat; 4import java.util.ArrayList; 5import java.util.Collections; 6import java.util.Date; 7import java.util.Optional; 8 9import javax.servlet.http.HttpSession; 10 11import org.springframework.beans.factory.annotation.Autowired; 12import org.springframework.stereotype.Controller; 13import org.springframework.transaction.annotation.Transactional; 14import org.springframework.web.bind.annotation.ModelAttribute; 15import org.springframework.web.bind.annotation.RequestMapping; 16import org.springframework.web.bind.annotation.RequestMethod; 17import org.springframework.web.bind.annotation.RequestParam; 18import org.springframework.web.servlet.ModelAndView; 19 20import com.example.demo.DeploymentComparator; 21import com.example.demo.entity.DeploymentEntity; 22import com.example.demo.entity.UserEntity; 23import com.example.demo.repository.DeploymentRepository; 24import com.example.demo.service.DeploymentService; 25 26@Controller 27public class DeploymentController { 28 29 @Autowired 30 DeploymentRepository rep; 31 32 @Autowired 33 HttpSession ses; 34 35 @RequestMapping(value = "/depTop", method = RequestMethod.GET) 36 public ModelAndView view(ModelAndView mav) { 37 mav.setViewName("departmentTop"); 38 mav.addObject("title", "部署管理"); 39 ArrayList<DeploymentEntity> list = rep.findDeploymentByDeleteFlag(); 40 mav.addObject("deploymentData", list); 41 return mav; 42 } 43 44 @RequestMapping(value = "/delete", method = RequestMethod.POST) 45 @Transactional(readOnly = false) 46 public ModelAndView deleteDeployment(@RequestParam String selectDeleteId, ModelAndView mav) { 47 int id = Integer.parseInt(selectDeleteId); 48 Optional<DeploymentEntity> data = rep.findById((long) id); 49 DeploymentEntity dep = data.get(); 50 51 dep.setDelete_flag(1); 52 53 Date date = new Date(); 54 SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 55 // 日時情報を指定フォーマットの文字列で取得 56 String display = format.format(date); 57 58 dep.setDelete_date(display); 59 60 UserEntity loginEmp = (UserEntity) ses.getAttribute("loginEmp"); 61 dep.setDeleter_id(loginEmp.getId()); 62 63 rep.saveAndFlush(dep); 64 65 return new ModelAndView("redirect:/departmetTop"); 66 67 } 68 69 @RequestMapping(value = "/depSort", method = RequestMethod.POST) 70 public ModelAndView sortExecution(@ModelAttribute ArrayList<DeploymentEntity> kf, ModelAndView mav) { 71 Collections.sort(kf, new DeploymentComparator()); 72 DeploymentService ks = new DeploymentService(); 73 ks.sortUpdate(kf); 74 return new ModelAndView("redirect:/depTop"); 75 } 76 77} 78

DeploymentEntity

1package com.example.demo.entity; 2 3import javax.persistence.Column; 4import javax.persistence.Entity; 5import javax.persistence.GeneratedValue; 6import javax.persistence.GenerationType; 7import javax.persistence.Id; 8import javax.persistence.Table; 9 10@Entity 11@Table(name = "m_deployment") 12public class DeploymentEntity { 13 14 @Id 15 @GeneratedValue(strategy = GenerationType.IDENTITY) 16 @Column(name = "deployment_id") 17 private int id; 18 @Column(name = "deployment_name") 19 private String deploymentName; 20 @Column 21 private String register_date; 22 @Column 23 private int register_id; 24 @Column 25 private String edit_date; 26 @Column(name = "editer_id") 27 private int editor_id; 28 @Column 29 private int delete_flag; 30 @Column 31 private String delete_date; 32 @Column 33 private int deleter_id; 34 @Column 35 private int sort_num; 36 37 public int getId() { 38 return id; 39 } 40 41 public void setId(int id) { 42 this.id = id; 43 } 44 45 public String getDeployment_name() { 46 return deploymentName; 47 } 48 49 public void setDeployment_name(String deployment_name) { 50 this.deploymentName = deployment_name; 51 } 52 53 public String getRegister_date() { 54 return register_date; 55 } 56 57 public void setRegister_date(String register_date) { 58 this.register_date = register_date; 59 } 60 61 public int getRegister_id() { 62 return register_id; 63 } 64 65 public void setRegister_id(int register_id) { 66 this.register_id = register_id; 67 } 68 69 public String getEdit_date() { 70 return edit_date; 71 } 72 73 public void setEdit_date(String edit_date) { 74 this.edit_date = edit_date; 75 } 76 77 public int getEditor_id() { 78 return editor_id; 79 } 80 81 public void setEditor_id(int editor_id) { 82 this.editor_id = editor_id; 83 } 84 85 public int getDelete_flag() { 86 return delete_flag; 87 } 88 89 public void setDelete_flag(int delete_flag) { 90 this.delete_flag = delete_flag; 91 } 92 93 public String getDelete_date() { 94 return delete_date; 95 } 96 97 public void setDelete_date(String delete_date) { 98 this.delete_date = delete_date; 99 } 100 101 public int getDeleter_id() { 102 return deleter_id; 103 } 104 105 public void setDeleter_id(int deleter_id) { 106 this.deleter_id = deleter_id; 107 } 108 109 public int getSort_num() { 110 return sort_num; 111 } 112 113 public void setSort_num(int sort_num) { 114 this.sort_num = sort_num; 115 } 116 117} 118

DeploymentControllerTest

1package com.example.demo; 2 3import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; 4import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; 5 6import java.util.ArrayList; 7 8import javax.servlet.http.HttpSession; 9 10import org.junit.Before; 11import org.junit.Test; 12import org.junit.runner.RunWith; 13import org.springframework.beans.factory.annotation.Autowired; 14import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; 15import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; 16import org.springframework.boot.test.context.SpringBootTest; 17import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 18import org.springframework.test.web.servlet.MockMvc; 19import org.springframework.test.web.servlet.setup.MockMvcBuilders; 20 21import com.example.demo.controller.DeploymentController; 22import com.example.demo.entity.DeploymentEntity; 23import com.example.demo.repository.DeploymentRepository; 24 25@RunWith(SpringJUnit4ClassRunner.class) 26@SpringBootTest 27@AutoConfigureMockMvc 28@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) 29 30public class DeploymentControllerTest { 31 @Autowired 32 private MockMvc mockMvc; 33 34 @Autowired 35 DeploymentController dc; 36 37 @Autowired 38 DeploymentRepository rep; 39 40 @Autowired 41 HttpSession ses; 42 43 @Before 44 public void setup() { 45 mockMvc = MockMvcBuilders.standaloneSetup(dc).build(); 46 47 } 48 49 @Test 50 public void viewTest() throws Exception { 51 52 ArrayList<DeploymentEntity> list = rep.findDeploymentByDeleteFlag(); 53 54 mockMvc.perform(get("/depTop")) 55 .andExpect(status().isOk()) 56 .andExpect(view().name("departmentTop")) 57 .andExpect(model().attribute("title", "部署管理")) 58 .andExpect(model().attribute("deploymentData", list)); 59 60 } 61 62} 63

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

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

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

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

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

guest

回答1

0

ベストアンサー

DeploymentEntity@6eb…という型が返ってきてほしいのに対してDeploymentEntity@1…という型が返ってきているため、クラスの型が不一致というエラーになっています。
(List<DeploymentEntity@6eb...>とList<DeploymentEntity@1...>を比較して型が違うのでアンマッチ)

DeploymentEntity@6eb…とかDeploymentEntity@1…はSpringがDeploymentEntityを元に動的に生成したクラスです。

"deploymentData"とlist、そのものを比較するのではなく、面倒でもlistの中に入っているEntityのそれぞれの中身(あるいは1件目だけを取り出すとか)を比較するほうがいいです。

投稿2020/08/26 05:57

編集2020/08/26 05:59
deaf_tadashi

総合スコア200

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

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

soso0programmer

2020/08/27 04:53

listの中にある中身をassertThatで比較することで解決しました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問