我有一个项目有一个junit测试类,我需要在编译时生成多个junit类,我想要做的是具有相同的junit类但有变化属性值。使用java和maven在编译时生成类
我无法在运行时完成此操作,此编译将在编译时完成。
我试图看到aspectj,但无法找到如何在编译时生成类。
是甚至可能在java?
我有一个项目有一个junit测试类,我需要在编译时生成多个junit类,我想要做的是具有相同的junit类但有变化属性值。使用java和maven在编译时生成类
我无法在运行时完成此操作,此编译将在编译时完成。
我试图看到aspectj,但无法找到如何在编译时生成类。
是甚至可能在java?
您可以使用@Parameterized由安迪说,或者一个基础测试类继承:
abstract class CommonTests {
@Test
public void testA() {
assertEquals(1, getValue());
...
}
@Test
public void testB() { ...}
....
abstract int getValue();
}
class Test1 extends CommonTests {
int getValue() { return 1;}
}
class Test2 extends CommonTests {
int getValue() { return 2;}
}
感谢您的建议,但这不会与我们合作,我们希望动态生成类,并作为上述评论, aws设备场不支持junit的这些功能。 我真正需要的是在编译时使用aop来生成类,但是这似乎不可能在java –
好的。没问题。也许你可以编辑你的问题,以更好地描述你的需求。它可能会让我或其他用户更好地理解您的要求 –
您可以使用@Parameterized测试呢?例如http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/ –
AOP绝对不会帮你在这里。您也不应该在运行应用程序附近的任何地方使用Maven。看看[Junit规则](https://github.com/junit-team/junit/wiki/Rules)或@Benoît的回答中的@参数化建议 –
我闻到代码异味。 – Snickers3192