如何模拟强制转换对象



我是模拟测试的新手,想知道如何使用mockito模拟以下内容。

uDAO = (UserDAO) dao;

其中dao定义为

protected DAO<T, Long> dao;

谢谢!

要为私有和受保护的字段(没有公共setter方法)注入mock,您必须使用反射。使用反射,您可以在该受保护字段的位置设置一个模拟对象。下面是一个反射代码示例:

Field hack = <PUT YOU CLASS NAME>.class.getDeclaredField("dao");
hack.setAccessible(true);
hack.set(<Object of the class where you are injecting the mock>,<the mock object>);

要创建模拟对象,您可以使用常规的PowerMockito.mockMockito.mock函数。

关于反射的更多信息,请查看以下链接:

在Java中是否可以通过反射访问私有字段http://www.java2s.com/Code/Java/Reflection/Setprivatefieldvalue.htm

相关内容

  • 没有找到相关文章

最新更新