当前位置: 首页 > 知识库问答 >
问题:

为什么我的测试不能从它的父级继承它的ContextConfiguration位置?

全誉
2023-03-14

为了便于DRY,我希望在父类中定义ContextConfiguration并让所有测试类继承它,如下所示:

父类:

package org.my;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/org/my/Tests-context.xml")
public abstract class BaseTest {

}

子类:

package org.my;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(inheritLocations = true)
public class ChildTest extends BaseTest {

    @Inject
    private Foo myFoo;

    @Test
    public void myTest() {
          ...
    }
}

根据ContextConfiguration文档,我应该能够继承父级的位置,但我不能让它工作。Spring仍然在默认位置(/org/my/childtest-context.xml)中查找文件,如果找不到,则会查找barfs。我尝试了以下方法,但没有成功:

  • 使父类具体化
  • 向父类添加无操作测试
  • 同时向父类添加注入成员
  • 以上组合

我使用spring-test 3.0.7和JUnit 4.8.2。

共有1个答案

皇甫波峻
2023-03-14

删除子类上的@contextconfiguration(inheritLocations=true)InheritLocations默认设置为true。

通过添加@contextconfiguration(inheritLocations=true)注释而不指定位置,可以告诉Spring添加默认上下文/org/my/childtest-context.xml来扩展资源位置列表。

尝试如下所示:

package org.my;

@RunWith(SpringJUnit4ClassRunner.class)
public class ChildTest extends BaseTest {

    @Inject
    private Foo myFoo;

    @Test
    public void myTest() {
          ...
    }
}
 类似资料:
  • 问题内容: 为什么以下代码不起作用(Python 2.5.2)? 我想创建一个类似的类,但具有不同的功能。显然我的函数永远不会被调用。而是调用原始文件并失败,因为它需要3个参数,而我传入了一个。 这里发生了什么?这是一个线索吗? 谢谢! 问题答案: 关于其他几个答案,这与用C本身实现的日期无关。该方法不做任何事情,因为它们是 不可变的 对象,因此构造函数()应该完成所有工作。您会看到相同的行为将i

  • 问题内容: 我有以下课程: 有没有搞错 ? 最糟糕的是我无法尝试super(),因为Exception是基于旧类的… 编辑:而且,是的,我试图切换继承/初始化的顺序。 EDIT2:我在Ubuntu8.10上使用CPython 2.4。您最近才知道这种信息很有用;-)。无论如何,这个小谜语已经让我的三个同事闭上了嘴。你会成为我今天最好的朋友… 问题答案: 两者和都在C中实现。 我认为您可以按照以下方

  • 因此,我正在Ubuntu 14.04机器上将所有工具从python2迁移到python3.4。到目前为止,我已经完成了以下工作: 仅针对我的用户,在我的zshrc中将python别名为python3 在系统本身上安装了pip3(但无论如何我都会使用VirtualNVS,所以我不会真正使用它) 将我的VirtualNVRapper“make”别名更改为('workon'在下面被调用为'v') 奇怪的

  • 问题内容: 我该如何继承其父代的样式和javascript。 我努力了 但是,它会删除标签。此外,我看不到影响iframe的样式。 我是否有更好/其他的方法来解决这个问题?谢谢。 问题答案: 您可以通过在iframe中使用以下代码来“继承”父级的CSS: 在IE,Chrome和Firefox中对我来说效果很好。 关于JavaScript,我找不到直接将父JavaScript添加到iframe中的方

  • 问题内容: 定义如下: 定义如下: 为什么要重新定义?并且由于它在界面中,如何重新定义它? 问题答案: 在Java 1.3中,添加了所有功能之后,它仅与无关,而与的其他实现无关。这样-这是 不 存在于和被定义。界面中还有其他3个选项。(英语Javadoc不再在线,尽管仍然可以下载,所以这里没有参考。如果搜索“ WindowConstants Java 1.3”,您将获得日语版的Javadoc-但由

  • 我升级Flutter 2.0后,状态栏的图标/文本的颜色从白色变成了黑色。我升级后,因为我没有做任何其他更改。现在我运行的所有应用程序的状态栏图标都是黑色的。为什么? 我试过真正的设备。结果是一样的。所以这不是模拟器的问题。 也不工作: 当我运行这段代码时,它会变白几秒钟,然后又变黑。像这样: 我想知道在Flatter 2.0之后升级的人是否也有同样的问题? 这是什么原因?如何再次变白? 编辑:当