- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在学习 Mockito 时,我在下面的引用资料中发现了两个不同的注释 @TestSubject 和 @InjectMocks。
@TestSubject Ref
@InjectMocks Ref @InjectMocks
注释工作得很好,如教程中所述,但 @TestSubject
不起作用,而是显示错误。
我在下面的代码片段中收到 TestSubject cannot be resolved to a type
错误,因为 @TestSubject
注释但是我已经完成了正确的设置(包括 Junit & Mockito 构建路径中的 jar 文件)。
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import com.infosys.junitinteg.action.MathApplication;
import com.infosys.junitinteg.service.CalculatorService;
@RunWith(MockitoJUnitRunner.class)
public class MathApplicationTester {
// @TestSubject annotation is used to identify class which is going to use
// the mock object
@TestSubject
MathApplication mathApplication = new MathApplication();
// @Mock annotation is used to create the mock object to be injected
@Mock
CalculatorService calcService;
@Test(expected = RuntimeException.class)
public void testAdd() {
// add the behavior to throw exception
Mockito.doThrow(new RuntimeException("Add operation not implemented")).when(calcService).add(10.0, 20.0);
// test the add functionality
Assert.assertEquals(mathApplication.add(10.0, 20.0), 30.0, 0);
}
}
我有两个问题。
<强>1。有人遇到过类似的问题吗?如果是,那么根本原因和解决方案是什么?
2. 如果它工作正常,那么 @TestSubject
和 @InjectMocks
注释有什么区别?
最佳答案
@TestSubject是 EasyMock 的注释,与 Mockito 的 @InjectMocks 相同.如果您使用的是 Mockito,则必须使用 @InjectMocks
。
关于java - @TestSubject 和@InjectMocks 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41999135/
在使用 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();
我是一名优秀的程序员,十分优秀!