>我最近遇到了一种情况,我们注入了一个 int,其值在属性文件中声明。
@Inject
@ConfigurationParameter("someparameter")
private int resetCount;
我如何模拟这个变量/依赖关系。可能吗?
现在,我删除了private
访问说明符,并使用类的对象设置了其值。但是,如果我希望它被声明为私有并且仍然想注入值或模拟变量怎么办?
注入主数据类型是一种好的做法吗?
Spring 框架提供的 ReflectionTestUtils 类 使用它,您可以设置类的任何字段,而不考虑其访问修饰符。
ReflectionTestUtils.setField(yourClassName, "resetCount", 5);
在这里看到我的答案
最后,我找到了解决方案。Mockito
api 中有一个名为 WhiteBox
的类,它可以设置对象的内部状态。
下面是一个如何完成的示例。