代码之家  ›  专栏  ›  技术社区  ›  LiTTle

斯普林(@SpyBean)对莫基托(@Spy)

  •  0
  • LiTTle  · 技术社区  · 6 年前

    有什么区别 @SpyBean org.springframework.boot.test.mock.mockito.SpyBean @Spy org.mockito.Spy ?

    使用 @间谍 而不是 @间谍 使我 tests 失败。

    0 回复  |  直到 6 年前
        1
  •  3
  •   csenga    6 年前

    @Spy doc 说:

    用@Spy注释的字段可以在 申报点。或者,如果不提供实例 Mockito将尝试找到零参数构造函数(甚至是private)和 为您创建一个实例。

    @SpyBean doc 说:

    可用于将Mockito spies应用于Spring的注释 应用程序上下文。

    同一类型上下文中的所有bean都将用 间谍。如果没有定义已存在的bean,则将添加新的bean。

    所以主要的区别是 @间谍 是一个特定于Spring Boot的注释,但是 @间谍 是Mockito本身的一部分。 @间谍 @间谍 基本上也一样,但是 @间谍 可以解析特定于Spring的依赖项,例如。 @Autowired , @间谍 只能使用空构造函数创建对象。