繁体   English   中英

静态方法使用的Spring注入资源

[英]Spring inject resource used by static method

我的单元测试设置如下:

  1. 使用Mockito的单元测试运行并创建一个对象(类未使用Spring)
  2. 对象在构造期间会在称为TimeUtil的实用程序类(Spring Component)中调用静态方法
  3. TimeUtil有一个称为TimeService(静态Spring组件)的字段,用于获取时间

工作流程:单元测试->创建对象-> TimeUtil中的静态方法调用->从TimeService提取时间

此工作流程在生产中可以正常工作,但是由于某些原因,测试一直存在挑战,因为TimeUtil中的TimeService始终为空。 Spring应该在运行时将TimeService的实例注入TimeUtil中。

谁能建议我的TimeService为何继续返回null?

我尝试使用Mockito捕获静态方法调用,但这没有用,类似地,我无法将TimeService模拟注入对象类,因为这会静态调用TimeUtil。

您需要查看Spring配置,以了解您(或团队中的某人)是如何使Spring连接静态TimeService 通常,Spring仅适用于它创建的bean。 因此不支持全局变量和静态方法。 在这种情况下,必须有人编写代码才能进行注入。

向我们显示此代码,我们可以帮助您进行改进以进行单元测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM