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

必须使用mockbean而不是autowired

张宝
2023-03-14
@RunWith(SpringJUnit4ClassRunner.class)
public class VehicleServiceImplTest {

    private VehiculeServiceImpl service;

    @Autowired
    private VehicleRepository repository;

    @Before
    public void prepare() {
        service = new VehiculeServiceImpl(repository);
    }

    @Test
    public void test(){

    }

}

如果我用MockBean替换Autowired的话,它是有效的,但我不知道为什么

共有1个答案

商华藏
2023-03-14

如果我用MockBean替换Autowired的话,它是有效的,但我不知道为什么

它之所以起作用,是因为@mockbean将替换或添加一个bean到Spring上下文中。
在您的情况下,它将在Spring上下文中添加一个存储库模拟。
因此这不能引发任何UnsatisfiedDependencyException

但这并不是必需的,因为您最初使用的@autowired是为了从上下文中注入bean而设计的。

 service = new VehiculeServiceImpl(repository);
 类似资料: