问题标签 [kiwi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 使用 Cocoapods 的 Kiwi 测试目标
我通过 Cocoapods 添加了 Kiwi。这是 podfile 的内容
我可以毫无问题地运行该应用程序。但是如果我点击 cmd+u 来运行测试目标(KiwiUnitTest)我会得到一些错误。应该测试的类(ParticleView)使用 BlocksKit(通过 Cocoapods 包含)。所以我将 ParticleView 添加到测试目标(KiwiUnitTest)并且错误说“没有可见的界面......声明选择器......似乎测试目标对Cocoapods一无所知。
我已经添加$(inherited)
到FRAMEWORK_SEARCH_PATHS
并添加$(BUNDLE_LOADER)
到了测试主机。从 podfile 中删除:exclusive =>
true 没有帮助
我删除了所有内容并从头开始设置整个 cocoapod 和测试目标。
ios - 如何使用 AFNetworking 对 api 调用进行单元测试
我有一个正在开发的 iOS 应用程序,它连接到第三方网络服务。我有大约 50 个不同的调用,并且想使用 Kiwi 编写单元测试,但我不知道从哪里开始。
由于我不对 API 负责,因此我只需使用正确的 GET 或 POST 方法检查我的调用是否指向正确的 URL。
有什么方法可以正确测试吗?
这是我的一个电话的例子:
它调用以下辅助方法
objective-c - 如何在 Kiwi 中为模拟方法设置参数期望
使用 OCMockito 和 OCHamcrest,我可以对模拟方法的参数设置期望,因此:
使用 Kiwi 似乎没有同样简单的方法可以做到这一点。可以使用间谍来捕获参数,例如:
然后检查对捕获对象的期望:
在 Kiwi 中是否有一种不那么笨拙的方法来做到这一点?
(我知道我可能可以在这里使用 hamcrest 匹配器,但目前我正在探索 Kiwi 的能力)。
unit-testing - 在 Kiwi 模拟上缺少验证方法是否有解决方法?
我非常喜欢用于单元测试的高度可预测的Arrange Act Assert 格式。
因为 Kiwi 没有针对模拟的显式验证语句,所以它强制使用不同的模式,例如:
我知道验证无论如何都会发生,但更喜欢能够快速扫描测试,将断言和期望放在一个可预测的地方。mockito(以及它的 Objective-C 实现OCMockito )很好地实现了这一点,其中验证步骤指定了方法调用 post-hoc,从而不需要事先的期望步骤。
我是一个相对的新西兰新手,所以我可能错过了文档中的一些内容。有没有明确验证 Kiwi 模拟的方法?
ios - 如何使用 Kiwi 测试 UICollectionViewLayout?
我需要用 Kiwi 测试一个 UICollectionViewFlowLayout 子类,
我已经正确地模拟了 UICollectionView 的委托和数据源,但我仍然遇到一些问题。
使用指定的项目大小CGSize(200.0f, 200.0f)
,我应该在屏幕上获得 5 个项目,但由于某种原因,最后一行返回的属性数组确实返回 10 个属性,这意味着有 10 个可见单元格。
这里会发生什么?如果我的布局按预期工作,屏幕上总是有 5 个元素:
这就是我到目前为止所拥有的(阅读评论),而且它大部分都有效。
这是我在没有测试的情况下运行应用程序时看到的:
ios - Kiwi iOS 上下文块的奇怪排序
我有一个看起来像这样的 Kiwi 规范文件:
运行规范会导致这行代码出现一次失败[[theValue(collection.objects.count) should] equal:theValue(1)];
这是奇怪的部分 - 如果我从规范中删除整个context(@"then removing 1 object", ^{...})
块,则上述测试通过。
这让我相信这[collection removeObject:object]
条线在测试失败之前就被执行了。我有一种感觉,我可能误解了块的执行顺序。
任何建议,将不胜感激!
ios - Kiwi + MagicalRecord 方法不存在
我正在使用 Kiwi 框架通过 Magical Record 库测试我的代码和 Core Data 之间的交互。神奇的记录在NSManagedObject上定义了一个category,增加了几个不错的方法,比如MR_createInContext:(NSManagedObjectContext *)context。我正在尝试测试是否调用了该方法以及调用了多少次。
问题是 Kiwi 似乎没有看到该类别,尽管
在测试 .m 文件中。
ME_ShouldCreateNewObjectForMeObjectWithNewId (EHMeSpecs) failed: 'ME, should create new object for me object with new id' [FAILED], cannot stub -MR_createInContext: because no such method exist
如何让 Kiwi 了解该类别?
ios - MagicalRecord MR_createInContext:返回 nil
我有以下方法:
我正在使用以下猕猴桃规格对其进行测试:
使用以下设置:
问题是方法 MR_createInContext 返回一个 nil,我不知道可能是什么原因,因为在其他一些测试中,相同的代码会产生一个有效的非 nil 对象。
ios - 嘲笑期望和中央大调度
我有一个简单的管理器对象,并在猕猴桃中使用模拟,我想检查当我调用[aPOIManager fetchNear:location]
它时是否调用它downloadPOIsNear:completionBlock:
的下载器。
一切正常,直到我决定将调用发送到大型中央调度中的下载器。
调用是异步的,测试现在失败。Kiwi 具有异步检查某些值的功能,但不检查异步调用。
这是我的测试的一部分:
ios - afhttpclient 单元测试网络可达性的变化
我当前的实现是一个AFHTTPClient
子类和随附的管理器类,用于处理与API
. 由于该应用程序将在无法保证网络连接的地方使用,我想围绕处理网络可达性变化的代码编写一些单元测试。
我已经实现了 asetReachabilityStatusChangeBlock
并希望确保它被调用并以正确的方式运行。
是否有人熟悉模拟用于单元测试的网络可达性变化?我目前正在使用 Kiwi 进行单元测试和OHHTTPStubs
模拟从webservice
.
测试这些情况的通常方法是什么?