1

我经常将 OCMock 与优秀的 OCHamcrest 匹配器一起使用。但是我经常遇到测试失败的消息,这些消息并没有提供应有的帮助。这是因为 OCHamcrest 输出严重依赖对象的“描述”方法返回的值,但 OCMockObject 的默认描述实现非常通用。

有没有推荐的方法让模拟对象返回自定义描述?

我已经尝试在我的模拟对象上存根“描述”方法,但这似乎不起作用。

作为一种解决方法,我创建了一个OCClassMockObject+Description添加方法的类别扩展setMockDescription:,但我希望有一个更官方支持的解决方案。(如果没有,也许我会完善我的并提交拉取请求。)

以下是我想改进的一些结果的示例......

示例断言 #1

assertThat(recommendedSong, is(mockSong1));

失败信息:

Expected <OCMockObject[SongBar]>, but was <OCMockObject[SongBar]>

示例断言 #2

assertThat(playlist.songs, contains(mockSong1, mockSong2, nil));

失败信息:

Expected a collection containing [<OCMockObject[SongBar]>, <OCMockObject[SongBar]>], but item 0: was <OCMockObject[SongBar]>
4

0 回答 0