0

我有以下课程:

@Component
public class MyClass {
    @Autowired MyPojo pojo;
}

我如何在不模拟注入的 bean 的情况下对其进行测试?我没有配置 [XML 或声明性]。我做了以下事情:

@RunWith(SpringJUnit4ClassRunner.class)
@ComponentScan
public class MyClassTest {
    @Autowired MyClass myClass;

    @Test
    public void test() {
        this.myClass...()
    }
}
4

1 回答 1

3

如果您不想使用任何类型的配置,无论是 Java 还是 XML 配置,您都可以使用@ContextConfiguration列出的组件类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { MyPojo.class, MyClass.class })
public class MyClassTest {

    @Autowired 
    private MyClass myClass;

    @Test
    public void test() {
        // myClass...
    }
}

请注意,MyPojo类也应该用 注释@Component

但是,在现实生活场景中,您可能至少需要一个@Configuration类(也可以与 一起使用@ContextConfiguration)。

有关 Spring 集成测试支持的更多信息,请参阅Spring 文档。

于 2018-06-05T18:13:28.720 回答