Java JUnit4中静态内部测试类的嵌套测试设置

Java JUnit4中静态内部测试类的嵌套测试设置,java,unit-testing,junit,mockito,Java,Unit Testing,Junit,Mockito,我在这里了解到了使用JUnit创建内部测试类以更好地构造测试的可能性: 这非常有效,但是现在我遇到了一个我不能很好地解决的问题:我希望在所有测试中有一些通用的测试设置,并为单个内部类提供一些额外的设置 我的结构如下所示: 导入静态org.junit.Assert.assertEquals; 导入静态org.mockito.mockito.when; 导入org.junit.Before; 导入org.junit.Test; 导入org.junit.experimental.runners.inc

我在这里了解到了使用JUnit创建内部测试类以更好地构造测试的可能性:

这非常有效,但是现在我遇到了一个我不能很好地解决的问题:我希望在所有测试中有一些通用的测试设置,并为单个内部类提供一些额外的设置

我的结构如下所示:

导入静态org.junit.Assert.assertEquals;
导入静态org.mockito.mockito.when;
导入org.junit.Before;
导入org.junit.Test;
导入org.junit.experimental.runners.included;
导入org.junit.runner.RunWith;
导入org.mockito.Mock;
导入org.mockito.MockitoAnnotations;
@RunWith(封闭的.class)
公共类计算器测试{
私有计算器calc;//测试中的类
@嘲弄
私有对象;
@以前
公共作废设置(){
//公共设置
initMocks(this);
calc=新计算器();
当(someMockObject.toString())。然后返回(“我快乐的小模拟对象”);
}
公共静态类AddTests{
@以前
公共作废设置(){
//专门针对该类的测试设置
当(someMockObject.toString()).thenReturn(“不编译:(”);
}
@试验
public void应添加两个整数(){
int结果=计算加(2,5);
资产质量(7,结果);
}
}
}
我的问题是,内部类需要是静态的,但我希望引用封闭类中的公共设置。这样做(显然)会导致以下错误:

无法对非静态字段someMockObject进行静态引用

有没有办法嵌套这些设置?或者我需要依次设置每个类(从而复制代码)

使用的Java版本:Java8

使用的库:JUnit4,Mockito2.12

从嵌套类中删除static,使用
@RunWith(NestedRunner.class)运行


将com.nitorcreations中的junit runner添加到pom.xml中。

如我链接的答案中所述,这不起作用,因为内部类需要是静态的,以便测试运行程序正确执行它们。除非我遗漏了什么?我尝试了你的建议,效果很好。使用库的一个缺点是,我正在工作在一个通过OSGi清单文件管理依赖关系的遗留系统中,nitocreations库还没有准备好OSGi…因此我必须将JAR作为一种资源,我希望避免这种情况