单元测试 – 嘲笑Swift

单元测试 – 嘲笑Swift,第1张

概述你如何在Swift中模拟一个对象? 镜像协议听起来有希望,但它现在做的不多。 到目前为止,我发现的唯一的办法是子类和覆盖所有的模拟类的方法。这当然不是一个真正的模拟,远离理想,很多工作。 任何其他想法? 为什么不是OCMock? 从source: Can I use OCMock using the language bridge functionality? Yes, but with limi 你如何在Swift中模拟一个对象?

镜像协议听起来有希望,但它现在做的不多。

到目前为止,我发现的唯一的办法是子类和覆盖所有的模拟类的方法。这当然不是一个真正的模拟,远离理想,很多工作。

任何其他想法?

为什么不是Ocmock?

从source:

Can I use Ocmock using the language brIDge functionality?

Yes,but
with limitations. If you are brave. As of Now this is highly
experimental. There’s no guarantee that Ocmock will ever fully support
Swift.

已知限制:

>测试必须用Objective-C编写
>应该被嘲笑的对象必须从NSObject继承
>没有stubbing /期望/验证类方法

NSHipster触及Swift中的语言特性,这使得外部模拟库不那么必要:

In Swift,classes can be declared within the deFinition of a function,allowing for mock objects to be extremely self-contained. Just declare a mock inner-class,overrIDe and [sic] necessary methods:

func testFetchRequestWithMockedManagedobjectContext() {    class MockNSManagedobjectContext: NSManagedobjectContext {        overrIDe func executeFetchRequest(request: NSFetchRequest!,error: autoreleasingUnsafePointer<NSError?>) -> [AnyObject]! {            return [["name": "Johnny Appleseed","email": "[email protected]"]]        }    }    ...}

在本地范围中创建一个外部依赖的子类的能力加上XCTestExpectation解决了很多与Ocmock相同的问题。

Ocmock提供的一个非常有用的库是“verify”方法,以确保mock类被调用。可以手动添加这个,但自动添加是很好的。

总结

以上是内存溢出为你收集整理的单元测试 – 嘲笑Swift全部内容,希望文章能够帮你解决单元测试 – 嘲笑Swift所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1060074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存