如何使用Spock进行深度模拟或存根?

7
如何在Spock中进行Mockito的深度模拟/存根(RETURNS_DEEP_STUBS)的等效操作?类似于以下内容:
Changes changes = Mock()
changes.id(_).current() >> aChangeApi

在Mockito中,它将是这样的:
Changes changes = mock(Changes.class, RETURNS_DEEP_STUBS);
when(changes.id(any()).current()).thenReturn(aChangeApi);
1个回答

6
我觉得你可以做类似这样的事情:
Changes changes = Stub()
changes.id(_) >> Stub(<ReturnedClass>) {
    current() >> aChangeApi
}

这只是返回一个桩体,然后可以进一步模拟。 我对Mockito不太熟悉,但从一些谷歌搜索来看,这似乎是可以获得类似结果的方法。

1
我认为你需要将 changes() >> aChangeApi 更改为 current() >> aChangeApi,以便与问题中提供的示例相匹配。 - stwr667

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接