gpt4 book ai didi

java - 如何模拟强制转换对象

转载 作者:行者123 更新时间:2023-12-01 09:36:42 33 4
gpt4 key购买 nike

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

uDAO = (UserDAO) dao;

其中 dao 定义为

protected DAO<T, Long> dao;

谢谢!

最佳答案

要为私有(private)字段和 protected 字段(没有公共(public) setter 方法)注入(inject)模拟,您必须使用反射。使用反射,您可以设置一个模拟对象来代替该 protected 字段。以下是反射代码示例。

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 函数。

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

Is it possible in Java to access private fields via reflection http://www.java2s.com/Code/Java/Reflection/Setprivatefieldvalue.htm

关于java - 如何模拟强制转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835166/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com