【发布时间】:2018-02-12 08:14:43
【问题描述】:
我对 Mockito 还很陌生。我不确定如何测试 void 函数 emitcount() 或实际将类测试到 100%?
@AllArgsConstructor(onConstructor = @__(@Inject))
public class MetricsFactoryProvider {
private MetricsFactory metricsHelper;
public void emitCount(final String metricName, final double metricCount, final long startTime) {
if (StringUtils.isBlank(metricName)) {
return;
}
try {
Metrics metrics = metricsHelper.newMetrics();
metrics.addDate("StartTime", startTime);
metrics.addCount(metricName, metricCount, Unit.ONE);
metrics.close();
} catch (Throwable t) {
throw some exception();
}
}
这是我目前的代码
public class MetricsFactoryProviderTest {
@Mock
Metrics metrics;
@Mock
MetricsFactory metricsHelper;
public void testemitCountfromMetricsFactoryProvider() {
metricsHelper = new MetricsHelper();
Metrics metrics = metricsHelper.newMetrics();
metrics.addDate("StartTime", System.currentTimeMillis());
metrics.addCount("some", 1, Unit.ONE);
MetricsFactoryProvider metricsFactoryProvider = new MetricsFactoryProvider(metrics.getMetricsFactory());
metricsFactoryProvider.emitCount("some metric name",1,System.currentTimeMillis());
Assert.assertNotNull(metricsFactoryProvider);
}
如何测试 emitfunction?我的思考过程
- 什么都不做(when(metricsFactoryProvider.emitfunction(pass args)))
- 或者我必须使用 ArgumentCaptor() 吗?如何验证函数 emitfunction 是否被调用且 metricsFactoryProvider 对象的数据是否正确?
【问题讨论】:
-
提示:preview 窗口的存在是有原因的。确保您在发布之前检查您输入的格式。您希望我们花时间为您提供帮助 - 所以请您花 1 分钟时间来正确格式化/缩进您的输入!
-
对不起,我纠正了它
-
没有问题。请记住,对于未来......以及除此之外:不要忘记在某些时候接受答案 - 向未来的读者展示问题已解决。至少考虑在某个时候提出有用的答案......现在你已经达到了那个水平;-)
标签: unit-testing junit mockito powermock easymock