在一个方法中模拟一个对象,该方法不是java中的参数,类似于下面的python代码?

时间:2011-07-21 13:01:32

标签: java python junit mocking python-unittest

以下是使用python进行非常酷的模拟,无论如何还要在java中做到这一点吗?

mockpath = os.path
mockpath.isdir = Mock(return_value=False)
myObj = MyClass()
myObj.invoke_some_method()
myObj.some_other_method.assert_called_with(False)

在java中有可能是这样的吗?意味着以这种方便的方式更新在其他对象方法中实例化的对象的返回值和行为?这样做的任何框架都很好吗?

感谢

2 个答案:

答案 0 :(得分:1)

Mockito支持partial mocks以及mocking out a method in a real class。后者看起来更像你的Python示例。

我相信EasyMock支持相同的功能,但我无法找到文档中的位置。

答案 1 :(得分:1)

我发现powermock库最适合java和大多数类似的mocks.py