首页 > 解决方案 > 有没有办法在 Junit5 中批量断言?

问题描述

这是我当前的 Junit5 测试脚本

Class testObject {
  private Integer integerField;
  private String stringField;
  private Boolean booleanField;

  ...getter, setter here
}
Class TestScript {
  private static final INTEGER DEFAULT_INTEGER_FIELD = 123;
  private static final STRING DEFAULT_STRING_FIELD = "string";
  private static final BOOLEAN DEFAULT_BOOLEAN_FIELD = false;

  private TestObject testObject;

  @BeforeEach 
  public void initTest{
    testObject.setIntegerField(DEFAULT_INTEGER_FIELD );
    testObject.setStringField(DEFAULT_STRING_FIELD );
    testObject.setBooleanField(DEFAULT_BOOLEAN_FIELD );
  }

  @Test
  public void saveShouldReturnTestObjectWithAllField() {
    //arrange
      ...

    //act
     TestObject savedObject = repository.save(testObject);

    //assert
    assertEquals(savedObject.getIntegerField(), DEFAULT_INTEGER_FIELD);
    assertEquals(savedObject.getStringField(), DEFAULT_STRING_FIELD);
    assertEquals(savedObject.getBooleanField(), DEFAULT_BOOLEAN_FIELD);

  }

这是很多类型的,尤其是一个对象有很多字段。

我想知道是否有任何库或实用程序类我可以编写来帮助我

  1. 自动实例化 mytestObject并将随机值作为默认值分配给testObject
  2. assertEquals 中的所有字段都testObject使用默认值

如果可以的话,那就太酷了


Class TestScript {

  private TestObject testObject;

  @BeforeEach 
  public void initTest{
    testObject = CustomAssertUtil.initDefault(testObject);
  }

  @Test
  public void saveShouldReturnTestObjectWithAllField() {
    //arrange
      ...

    //act
     TestObject savedObject = repository.save(testObject);

    //assert
    CustomAssertUtil.assertEqualsAllWithDefault(savedObject);
  }
}

标签: javamockitoassertjunit5

解决方案


推荐阅读