Я хочу разделить данные теста для конкретного теста.Например, у нас есть два тестовых класса A и B, которые работают на разных данных, поэтому я хочу создать ATestData.xml и BTestData.xml, и когда тестовый класс запускается, он должен выполнить ATestData.xml, затем выполнить откат, затем запустить тест B и выполнить BTestData.xml.в Arquillian Persistence Extension было @UsingDataSet("datasets/users.yml")
.
Я начал писать свою собственную аннотацию:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface LiquibaseTestDataFile {
String value() default "";
}
И
@Slf4j
@Aspect
@Component
public class LiquibaseTestDataFileAspect {
@Before("execution(* (@LiquibaseTestDataFile *).*(..)) || execution(@LiquibaseTestDataFile * *(..))")
public void insertTestData(JoinPoint joinPoint){
log.info("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Class<?> declaringClass = signature.getMethod().getDeclaringClass();
LiquibaseTestDataFile myAnnotation = declaringClass.getAnnotation(LiquibaseTestDataFile.class);
//TODO if null maybe on method
//log.info(myAnnotation.value());
}
}
Но это не триггеры, когда аннотацияв тестовом классе.
Я использую @EnableAspectJAutoProxy
в конфигурации
и
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {TransferManagerRestApplication.class})
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
в тестовом классе.