我有一個項目有一個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