java – @TestSubject和@InjectMocks之间的区别?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – @TestSubject和@InjectMocks之间的区别?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1560字,纯文字阅读大概需要3分钟。
内容图文
![java – @TestSubject和@InjectMocks之间的区别?](/upload/InfoBanner/zyjiaocheng/820/0ab779384dd44856808db270141c9183.jpg)
在学习Mockito时,我在下面的参考文献中找到了两个不同的注释@TestSubject和@InjectMocks.
@TestSubject Ref@InjectMocks Ref
@InjectMocks注释正如教程中所解释的那样工作得很好,但@TestSubject不起作用而不是显示错误.
我在下面的代码片段中得到的TestSubject无法解析为@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);
}
}
我这里有两个问题.
有人遇到过类似的问题吗?如果是,那么根本原因和解决方案是什么?
2.如果它工作正常,那么@ TestSubject和@InjectMocks注释之间的区别是什么?
解决方法:
@TestSubject是EasyMock的注释,像Mockito的@InjectMocks一样.如果你使用的是Mockito,那么你必须使用@InjectMocks.
内容总结
以上是互联网集市为您收集整理的java – @TestSubject和@InjectMocks之间的区别?全部内容,希望文章能够帮你解决java – @TestSubject和@InjectMocks之间的区别?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。