2012-09-20 81 views
1

我无法弄清楚什么是不对的嘲讽,希望有人能帮助:用的Mockito枚举参数不工作

我有一个枚举,MyEnum被用来作为参数传递给一个方法,我想嘲笑。嘲讽看起来有点像这样:

when(myMockedObject.getMethod(MyEnum.XYZ)).thenReturn(myMockedValue); 

和实际执行代码看起来是这样的:

MyMockedValue theMockedValue = myMockedObject.getMethod(MyEnum.XYZ); 

我期待theMockedValue等于myMockedValue。但是,模拟不起作用,并且MockedValue始终为空。这有什么问题?

+0

这应该工作。你能展示更多的代码(枚举,测试,测试)? – Brice

+0

@Brice - 我经常发现问题归咎于我的狡猾代码!嘲笑确实奏效,正如你所建议的那样。问题是我的测试中有一个错误,我有两个mocked的myMockedObject实例。我设置一个返回一个模拟值,然后错误地使用另一个代码。一旦重复的模拟被删除,它一切正常。感谢您的努力。 – DaveRlz

回答

0

这是我自己狡猾的代码。我发现了一个重复的模拟对象,其中一个实例涉及模拟,另一个正在代码中使用,导致返回空值。

正如我以为我失去了与mockito的战斗,现在我意识到我明白发生了什么事情。