java - java中junit测试中的断言错误

标签 java junit

伙计们,我有这项服务

public class DepartmentServiceImpl implements DepartmentService {

    @Autowired
    private DepartmentDao departmentDao;
    //... other functions 

    @Override
    public Department getDepartment(int depid) {
        return departmentDao.getDepartment(depid);
    }
}

我的测试单元是

Department department = new Department();

@Autowired
private DepartmentDao myDao;

@Autowired
private DepartmentService service;


@Test
public void testGetDepartment(){
    department.setDepId(111);
    department.setDepName("merna");
    assertEquals(department, service.getDepartment(111));
}

但它给了我

java.lang.AssertionError: expected:<com.dineshonjava.model.Department@f9b5552> but was:<com.dineshonjava.model.Department@4d4960c8>

有什么帮助吗?

最佳答案

您应该重写 Department 类中的 equals 方法:

public boolean equals(Object object) {
      if(object == null) {
          return false;
      } 
      if(this == object) {
          return true;
      }
      Department otherDepartment = (Department) object;
      if(this.getDepId() == otherDepartment.getDepId()) {
          return true;
      } else {
          return false;
      }
}

关于java - java中junit测试中的断言错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37251557/

相关文章:

java - 如何执行 JUnit 断言消息?

java - 确定运行 JUnit 测试时变量未重置为默认值的原因

android - 当我在 robolectric 单元测试中添加影子类时抛出 LinkageError 和 IllegalAccessException 异常

java - 为什么我不应该使用 date4j 而不是 joda java.util.Calendar 或 jsr 310?

java - 我可以使用 f :convertNumber with h:outputFormat

java - 方法 .toArray(IntFunction<A[]> Generator) 如何知道新数组的大小

java - Eclipse - 在控制台中看不到断言结果

junit - 从 Junit 4 到 Junit 5 的迁移问题

Java-如何在屏幕上绘制像素

java - 应用程序类变量在android中未初始化