I want to make a test suite using JUnit in which one Java class initialize the values and all the remaining JUnit test classes, get their values from that class.
I have made a class BaseTestclass.java
in which values of class Stock.java
has been initialized and I am using a JUnit test class TestClass1
in which I want to use values initialized by BaseTestClass.java
. I am using a test suite AllClass.java
to run both the classes.
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());
}
}
Test Suite: 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 {
}
So, now when I run the test suite i get the following error:
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)
Please Help...