我想采用BDD方法在iOS项目中进行单元测试,我只是意识到可能没有现有的库提供test spy品种的测试双打 . 理想情况下,我正在寻找类似Mockito,Jasmine或RR的东西 .
在我开始花一个星期的空闲时间编写测试 Spy 库之前,我想我先在SO上提出这个问题 .
到目前为止,我已经看过OCMock和Kiwi,但它们似乎都是传统的high-specification-by-default mocking frameworks,需要在arrange phase, prior to the act phase中设置期望断言 . 显然,这妨碍了我对美丽的嵌套规范的看法(我计划在Kiwi或Cedar中进行创作) .
1 回答
刚看到这个 .
奇异果现在绝对不会这样做 . 你是对的,其中的模拟是为行动阶段之前的安排而建造的 .
继续前进,虽然乍一看,似乎添加 Spy 功能的基础知识不需要太多的再造 . 进入模拟的每条消息(禁止某些实现重要的保留选择器)都会通过
-[KWMock forwardInvocation:]
.本质上,需要修改当前的
-[KWMock forwardInvocation:]
来记录/复制通过它的所有调用,而不是现在的调用 . 这将是原始功能,通过查询记录的调用,可以在以后验证期望 . 当然,提出一个很好的可读形式进行验证也不是一件轻而易举的事 .Spy /模拟仍然需要知道它所代表的类/协议 . 这样就可以为发送给它的消息选择器生成有效的方法签名,允许运行时转发机制生成将被转发的实际NSInvocation .
我现在专注于其他事情以获得实施,但我很乐意回答更多问题或合并任何拉动请求 . HTH .