簡體   English   中英

在一個Java文件中初始化值,測試套件的所有其他junit類從該Java文件中獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM