【发布时间】:2018-03-21 01:16:18
【问题描述】:
我在一个类中有一个静态方法。该方法不是最终的。我不断收到 when() 需要一个参数,该参数必须是“模拟方法调用”错误。下面是我的代码。
mockStatic(HomefeedExperimentUtils.class);
when(HomefeedExperimentUtils.getGroupAndActivateExperiment(
"link_stock_signal_filter_exp")).thenReturn(
"treatment");
我也试过了:
HomefeedExperimentUtils mock = org.mockito.Mockito.mock(HomefeedExperimentUtils.class);
when(mock.getGroupAndActivateExperiment(
"link_stock_signal_filter_exp")).thenReturn(
"treatment");
任何帮助都将不胜感激。
谢谢!
【问题讨论】:
-
不要模拟静态。测试公开行为,如果静态是公开的,直接测试。
-
首先不要使用
static方法。它们使您的代码不灵活且难以重用(正如您使用模拟的问题所显示的那样)。不:没有规定实用程序类必须具有静态方法...