[英]Initialize values in one java file and all other junit classes of a test suite get data from that java file
我想使用JUnit創建一個測試套件,其中一個Java類初始化值,而所有其他JUnit測試類從該類獲取它們的值。
我創建了一個BaseTestclass.java
類,其中已經初始化了Stock.java
類的值,並且我正在使用JUnit測試類TestClass1
,其中我想使用由BaseTestClass.java
初始化的BaseTestClass.java
。 我正在使用測試套件AllClass.java
來運行兩個類。
Stock.java:
package com.practiseEasyMock.EasyMockPractise;
public class Stock {
private String stockId;
private String name;
private Integer quantity;
public String getStockId() {
return this.stockId;
}
public void setStockId(final String stockId) {
this.stockId = stockId;
}
public String getName() {
return this.name;
}
public void setName(final String name) {
this.name = name;
}
public Integer getQuantity() {
return this.quantity;
}
public void setQuantity(final Integer quantity) {
this.quantity = quantity;
}
}
BaseTestClass.java:
package com.practiseEasyMock.EasyMockPractise;
import java.util.ArrayList;
import java.util.List;
public class BaseTestClass {
private Stock googleStock, microsoftStock;
private List<Stock> stocks;
public void setCommonString() {
this.googleStock = new Stock();
this.googleStock.setName("Google");
this.microsoftStock = new Stock();
this.microsoftStock.setName("Microsoft");
this.stocks = new ArrayList<Stock>();
this.stocks.add(this.googleStock);
this.stocks.add(this.microsoftStock);
}
public Stock getGoogleStock() {
return this.googleStock;
}
public Stock getMicrosoftStock() {
return this.microsoftStock;
}
public List<Stock> getStocks() {
return this.stocks;
}
}
TestClass1.java:
package com.practiseEasyMock.EasyMockPractise;
import org.easymock.EasyMockRunner;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(EasyMockRunner.class)
public class TestClass1 {
private BaseTestClass baseTestClass;
@Test
public void testSuite1MarketValue() {
this.baseTestClass = new BaseTestClass();
this.baseTestClass.setCommonString();
Assert.assertEquals("Google", this.baseTestClass.getGoogleStock().getName());
Assert.assertEquals("Microsoft", this.baseTestClass.getMicrosoftStock().getName());
}
}
測試套件:AllTests.java
package com.practiseEasyMock.EasyMockPractise;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({BaseTestClass.class, TestSuite1.class})
public class AllTests {
}
因此,現在當我運行測試套件時,出現以下錯誤:
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:101)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:87)
at org.junit.runners.Suite.<init>(Suite.java:102)
at org.junit.runners.Suite.<init>(Suite.java:70)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:107)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
請幫忙...
BaseTestClass
不包含任何測試。 這就是錯誤“無可運行方法”的原因。 從BaseTestClass
的@SuiteClasses
批注中刪除BaseTestClass
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.