![](/img/trans.png)
[英]parameterized test constructor of junit java error message: Test class should have exactly one public zero-argument constructor
[英]Error “Test class should have exactly one public zero-argument constructor” is returned
搜索並找不到適當的答案后,我在這里提出。
我用@Test編寫了下面的簡單類,當我嘗試運行時,我收到“ java.lang.Exception:測試類應該恰好有一個公共的零參數構造函數”錯誤。 有人可以幫我解決這個問題。
package Shopping.Tests;
import Shopping.Config.TestData;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
@Slf4j
public class TestScenario1 {
private final TestData testData;
public TestScenario1(TestData testData) {
this.testData = testData;
}
@Test
public void sampleTest(){
log.info(testData.getBaseURL());
}
}
此非默認構造函數使測試框架無法創建該類的實例
public TestScenario1(TestData testData) {
您需要一個無參數的構造函數:
public TestScenario1() { //or have no explicit constructor declared at all
通常使用@Before
注釋的方法來初始化測試數據(假設junit是您的測試框架-參見@Before和@BeforeClass )
public TestScenario1() {}
@Before
public void prepareTestData() {
this.testData = fetchTestData()...//It can't be passed in as parameter.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.