返回模拟对象的自定义描述和debugDescription值

时间:2013-07-17 18:10:41

标签: objective-c ocmock ochamcrest

我经常使用OCMock和优秀的OCHamcrest匹配器。但是我经常会遇到测试失败消息,这些消息并不像它们那样有用。这是因为OCHamcrest输出很大程度上依赖于对象的“description”方法返回的值,但是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]>

0 个答案:

没有答案