【发布时间】:2026-02-21 22:35:01
【问题描述】:
假设我有一个接口Foo 和方法bar(String s)。我唯一想嘲笑的是bar("test");。
我不能使用静态部分模拟来做到这一点,因为我只希望在传递“测试”参数时模拟 bar 方法。我不能通过动态部分模拟来做到这一点,因为这是一个接口,我也不希望模拟实现构造函数。我也不能对MockUp 使用接口模拟,因为我无法注入模拟实例,它是在代码中的某处创建的。
我有什么遗漏吗?
【问题讨论】:
-
Foo是如何创建的?示例代码会很好。
-
有什么我不明白的地方吗?为什么
Foo foo = mock(FooImpl.class); when(foo.bar("test")).thenReturn("mocked"); when(foo.bar(anyString())).thenCallRealMethod()不适合你。编辑:一开始我没有看到你在使用 JMockit。
标签: java unit-testing junit jmockit