Junit5中是否可以批量断言?

问题描述 投票:0回答:1

这是我当前的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. 自动实例化我的testObject并将随机值作为默认值分配给testObject
  2. assert用默认值将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);
  }
}
java mockito assert junit5
1个回答
0
投票

您可以将Open Pojo用于此任务:openpojo

public class EntityTest {

  @Test
  public void shouldSetAndGet() {
        PojoClass pojoclass = PojoClassFactory.getPojoClass(Entity.class);
        Validator validator = ValidatorBuilder
                .create()
                .with(new SetterMustExistRule())
                .with(new GetterMustExistRule())
                .with(new SetterTester())
                .with(new GetterTester())
                .build();
        validator.validate(pojoclass);
  }
}

Resource

© www.soinside.com 2019 - 2024. All rights reserved.