测试已测试 | ✓ |
Lang语言 | Obj-CObjective C |
许可证 | BSD |
发布日期最后发布日期 | 2014年12月 |
由 Elliot Chance 维护。
OCHamcrestExtensions 是建立在 OCHamcrest 之上的。它添加了额外的功能,包括:
OCHamcrestExtensions 是一个可替换的 替代品,但包含原始 OCHamcrest 项目的所有源代码。如果您尝试链接这两个库,将会出现重复符号错误。
以下是添加功能的文档,有关其他所有的信息,请参考 OCHamcrest 文档。
OCHamcrest 附带一组有用的匹配器。此列表仅包含 OCHamcrestExtensions 的新增匹配器。
布尔型
assertYes
- 对 assertThatBool(x, equalToBool(YES))
的便捷方法assertNo
- 对 assertThatBool(x, equalToBool(NO))
的便捷方法assertTrue
- 与 assertYes
相同assertFalse
- 与 assertNo
相同文本
emptyString
- 匹配空字符串异常
ignoringReturnValue
- 用来包装非 id
返回类型表达式willThrow
- 断言抛出特定 NSExceptionwillThrowException
- 断言抛出任何 NSExceptionwillNotThrowException
- 断言不会抛出异常检查是否抛出(或未抛出)异常通常与一般断言类似
assertThat([myObject mightThrowException], willThrowException());
assertThat([myObject mightThrowException], willNotThrowException());
断言特定名称
assertThat([myObject mightThrowException], willThrow(NSInvalidArgumentException));
处理 void 和其他非 id
相关表达式
assertThat(ignoringReturnValue(1 + 1), willNotThrowException());
使用字符串匹配器对异常原因进行匹配
NSException *e = [NSException exceptionWithName:NSInvalidArgumentException
reason:@"For fun."
userInfo:nil];
assertThat(ignoringReturnValue(@throw e), allOf(
willThrow(NSInvalidArgumentException),
containsString(@"fun."),
nil
));
不需要指定异常断言,所以上面的内容可以更简洁地编写 - 然而,如果表达式返回的字符串包含 "fun." 且没有抛出异常,则这将是一个误报
assertThat(ignoringReturnValue(@throw e), containsString(@"fun."));
断言包含错误消息的精确异常的一种更安全和更简单的方法是使用等于性,因为等于性包含两者
assertThat(ignoringReturnValue(@throw e), equalTo(@"NSInvalidArgumentException: For fun."));