3

我想在 iOS 项目中采用 BDD 方法进行单元测试,我刚刚意识到可能没有一个现有的库可以提供测试间谍种类的测试替身。理想情况下,我正在寻找类似于MockitoJasmineRR的东西。

在我花一周的空闲时间编写一个测试间谍库之前,我想我会先在 SO 上提出这个问题。

到目前为止,我已经查看了OCMockKiwi,但它们似乎都是传统的高规格默认模拟框架,需要在安排阶段设置期望断言,在行为阶段之前。显然,这阻碍了我对美丽、干燥、嵌套规范的愿景(我计划在KiwiCedar中创作)。

4

1 回答 1

2

刚看到这个。

猕猴桃现在绝对不会这样做。你是对的,其中的模拟是为在行动阶段之前的“标准”安排而构建的。

继续前进,尽管乍看之下,添加间谍功能的基础似乎不需要太多的重新设计。到达模拟的每条消息(除了一些重要的实现,保留的选择器)都会通过-[KWMock forwardInvocation:].

本质上,-[KWMock forwardInvocation:]需要修改 current 以记录/复制通过它的所有调用,而不是它现在所做的。这将是允许稍后通过查询记录的调用来验证期望的原始功能。当然,提出一个可读性好的验证表格也不是一件容易的事。

间谍/模拟仍然需要知道它代表什么类/协议。这样它就能够为发送给它的消息的选择器生成有效的方法签名,从而允许运行时转发机器生成将被转发的实际 NSInvocation。

我现在全神贯注于其他事情以实现其中,但我很乐意回答更多问题或合并任何拉取请求。HTH。

于 2011-03-08T06:23:00.193 回答