- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
下面的方法等价于什么:
@Mock
MyType1 myType1;
@Autowired
@InjectMocks
MyType2 myType2;
我可以将 @Mock
替换为 mock(MyType1.class)
。
但是如何用方法调用替换 @InjectMocks
呢?像这样:
injectMocks(MyType2.class)
最佳答案
Mockito 中没有用于模拟注入(inject)的公共(public) API。此外,由于此注释主要由测试中布局事物的方式驱动,因此它与测试的初始化阶段相当相关。
虽然它可能会在未来的某个时候发生变化。
但是 Mockito 注释字段可以通过 MockitoJUnitRunner
或 MockitoAnnotations.initMocks()
进行初始化。他们都创建模拟实例并执行注入(inject)。
我还在你的代码中看到你正在使用 @Autowired
- 因此是 spring 的东西,可能是通过 XML 配置的。 @InjectMocks
并不是真正为与其他依赖注入(inject)框架一起工作而开发的,因为开发是由单元测试用例驱动的,而不是集成测试。
您可能想看看 springockito ,这是另一个试图在 Spring 中简化 Mockito 模拟创建的项目。
希望对你有帮助
关于java - @InjectMocks 的等效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854344/
在使用 JUnit 进行单元测试时,我在传递依赖项时遇到了一些麻烦。 考虑这些代码: 这是我要测试的类的依赖注入(inject),我们称之为 Controller 。 @Inject private
我有这段代码 - @Component public class ServiceA { @Autowired private ServiceB serviceB; public
这是我要模拟的类(class)。 private MemcachedClient memcachedClient; private CachedObjectFactory cachedObjectFa
我们目前正在使用 JUnit 和 Mockito 来测试我们的代码。 我们有一个如下所示的服务接口(interface)。 public interface ServiceA { void
我已经阅读了很多关于@Mock 和@InjectMocks 的讨论,但仍然找不到使用@InjectMocks 的合适或必要的情况。事实上,我不确定当我们使用@InjectMocks 时会发生什么。 考
下面的方法等价于什么: @Mock MyType1 myType1; @Autowired @InjectMocks MyType2 myType2; 我可以将 @Mock 替换为 mock(MyTy
我有一个要测试的 RestController: import javax.validation.Valid; import org.springframework.beans.factory.ann
我创建了一个包装器,用于通过 log4j 进行日志记录,扩展 HandlerInterceptorAdapter 并保持构建类型 maven 项目。我在我的 Spring Boot 应用程序中使用这个
这是我第一次使用 Mockito 进行 junit 测试。我面临 @InjectMocks 中使用的服务的 NPE 问题。我查看了其他解决方案,但即使在遵循它们之后,它也显示相同。这是我的代码。 @R
假设我有一个类: public class Boy { @Inject @Named("birthDay"
考虑下面的代码片段: @ExtendWith(MockitoExtension.class) public class MyTest { @InjectMocks ClassA cA;
我有这样的东西 @Component public class TestController { @Autowired private TestService testService;
我正在为我的单元测试项目(Spring boot rest controller)创建基础,我在传递@InjectMocks 值时遇到问题,因为它仅在@Before 中评估,因此当我尝试访问它时会抛出
我想在一种方法中使用模拟 eventService,在另一种方法中使用真实的 eventService。 @Mock(name = "eventService") private
是的,我知道,关于 Mockito 的 @InjectMocks 已经写了很多,但是仍然有一个问题我无法解决...... 假设我们有一个有四名成员的类(class)... class A {
这到底是如何运作的?按照我的理解,不应该有。LDAPGroupAccessor 正在类中进行 new 初始化,或者可以在构造函数本身中进行 new 初始化,它没有被注入(inject),不是构造函数参
我正在 Spring Mvc 上使用 Mockito 进行 JUnit 测试。测试使用 @InjectMock 和 @Mock 以及when(method(..)).thenReturn(X)。问题是
我正在测试我的类中的两个私有(private)字段,这两个字段在构造函数中初始化。 现在,当我尝试使用带有 @InjectMocks 注释的类进行调用时,它会抛出异常: Cannot instant
我有以下类(class): public class DaoService { private Dao dao; private Map map; public DaoService
为了了解 Mockito 注释工作原理的基础知识,我浏览了一些博客。 但是我对何时手动实例化用 @InjectMocks 注释的字段存在疑问,即 @InjectMocks A a = new A();
我是一名优秀的程序员,十分优秀!