问题标签 [quick-nimble]
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.
swift - 如何在 Swift 中通过类反射使用表驱动测试
我有很多 Realm 数据模型,我想在快速规范中进行测试。每个模型的测试机制是相同的:
- 期望对象类型的领域为空
- 从 JSON 文件加载示例数据
- 使用 JSON 数据初始化模型
- 将模型对象保存到领域
- 期望领域包含加载的对象
所有模型都继承自同一个 BaseModel 类型。
由于样板代码是相同的,我希望使用表驱动的方法来使用数组和类反射进行测试,如下所示:
这失败了,因为 BaseModel 类型并不是我想要实例化的。我想实例化实际的 testClass 类型,因为我需要将正确的模型类型插入 Realm 才能使其工作。此外,基本模型有几个未定义的部分,Realm 需要,例如留给后代模型实现的主键。
尝试使用反射来获取实际模型类的概念实际上与 Realm 是分开的,因此这不一定是 Realm 问题。由于我不知道循环中的模型类型,除了 String 值有没有办法获得实际的模型类型而不仅仅是继承的父类型?
xcode - 如何在 Xcode 8 上可靠地安装和设置快速测试框架?
背景:
在处理这个答案Quick test framework
时,我注意到在 Xcode 上正确设置并不是那么简单。就我而言,经过 3-4 次失败的尝试才最终获得了一个工作版本。而且,我不确定我之前的尝试哪里错了。或者更重要的是,为什么该线程中的提问者每次都会重复运行。然后他也尝试了几次才终于有了一个工作。
问题:
我想问你们是否有可靠的方法来使用 Cocoa pod(或 Carthage 或 Git 子模块)在 Xcode 上设置 Quick Framework,直到运行正常工作的 Quick 测试用例,您愿意分享。
我以前是怎么做的:
以下是我创建工作的方法Quick framework on Xcode
:
1. 我按照RayWenderlich 网站上的 XCTest 文章中的步骤设置 XCTest 环境。2. 然后我按照安装 Quick
3
添加 Cocoa Pods
。然后按照设置 Xcode
4 中的说明进行操作。然后我在剩下的过程中进行了修改和即兴创作,搜索了之后遇到的每个问题,尝试这个那个直到有用。 (这些步骤包括添加快速框架以在我的目标的构建阶段链接二进制文件)
我不自豪地分享我上面的步骤,但我现在没有更好的方法。我希望通过问这个问题找到更好的方法。问的可能太多了。
我的播客文件:
swift - 测试 Swift 扩展
我尝试创建一个 cocoapod 来扩展 Swift 中的 Primitives。我无法通过测试或配置错误:
这是我的敏捷/快速测试:
*** 我收到一个unresolved identifier "validString"
错误
我真正想要测试的是扩展。但是这些变量也没有附加到我的字符串上:
swift - 如何在 Swift Quick Nimble 中执行 beforeAll
在 Jasmine 中,beforeAll() 块可以在描述中使用并在该描述中的所有 it 块之前运行。在 Swift 的 XCUITest (xcode) 中的 Quick/Nimble BDD 框架中是否有与此等价的东西?我只能找到 beforeSuite() 但它在所有描述块之前运行。
swift - Swift pod 未找到模块 - 敏捷、快速
在安装 swift pod - Nimble,Quick, - 我遇到了奇怪的问题。安装 pod 后,我看到所有 pod 的成功消息,但所有框架都显示为红色。当尝试导入这些模块时,开始向我显示错误为“没有这样的模块”。
swift - Quick-Nimble 框架中是否有 XCTFail() 等效项?
对于特定情况,我需要在Quick - Nimble框架中无条件地生成测试用例失败。我该怎么做呢?等效的XCTFail("Expecting to get failure callback")
会有所帮助。
ios - Carthage 阻止 Xcode 9.2 构建
我一直在尝试使用 Carthage 的项目。安装 Carthage 后,我尝试通过 Carthage 将 Nimble 和 Quick 添加到项目中。
但是,我在迦太基更新中得到以下信息:
user$ carthage update
*** Fetching Quick
*** Fetching Nimble
*** Checking out Nimble at "v5.1.1"
*** Checking out Quick at "v1.2.0"
*** xcodebuild output can be found in /var/folders/g_/h57q7zyj569cgs2rryp8cmk40000gp/T/carthage-xcodebuild.YUIvqk.log
*** Building scheme "Nimble-iOS" in Nimble.xcodeproj
Build Failed
Task failed with exit code 65:
/usr/bin/xcrun xcodebuild -project /Users/user/nbrownapp/Carthage/Checkouts/Nimble/Nimble.xcodeproj -scheme Nimble-iOS -configuration Release -derivedDataPath /Users/user/Library/Caches/org.carthage.CarthageKit/DerivedData/9.2_9C40b/Nimble/v5.1.1 -sdk iphoneos ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES archive -archivePath /var/folders/g_/h57q7zyj569cgs2rryp8cmk40000gp/T/Nimble SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO CLANG_ENABLE_CODE_COVERAGE=NO (launched in /Users/user/nbrownapp/Carthage/Checkouts/Nimble)
这通常表明项目本身无法编译。请查看 xcodebuild 日志以获取更多详细信息:/var/folders/g_/h57q7zyj569cgs2rryp8cmk40000gp/T/carthage-xcodebuild.YUIvqk.log
项目本身无法构建,并出现大量 Shell 脚本调用错误。卸载 Carthage,从项目中删除 Cartfile、Cartfile.resolved 和 Carthage 文件夹并删除脚本会导致项目构建没有任何错误。但是,我想使用 Carthage 却不明白为什么我不能用它来构建依赖项?或者为什么安装 Carthage 时项目不会构建?
如果我删除上述内容并重试,我会得到同样的错误。
我一直在关注 Ray Wenderlich 的例子: https ://www.raywenderlich.com/165660/carthage-tutorial-getting-started-2
任何帮助,将不胜感激。
swift - Swift 枚举 + 关联值 + 内联大小写检查
我有以下用于返回异步 API 响应的快速枚举:
为了简化我的单元测试实现,我想检查我的一种方法的返回结果枚举是否等于成功
我知道我可以使用以下语句打开结果枚举
我想存档的是使用单行语句来检查结果是否成功expect
swift - Swift test --filter 在实际运行测试时似乎排除了所有内容
我有一个用 SwiftPM 编译的 swift 库,我testTarget
在Package.swift
. 我希望能够在我的 CI 中独立运行这两个测试目标,所以我一直在尝试运行类似的东西:
swift test --filter='unitTests'
swift test --filter='integrationTests'
当我没有运行时--filter
,我看到 4 个单元测试运行,1 个失败;和 1 次集成测试,1 次失败。但是,这些--filter
命令导致 1 个通过单元测试和 0 个集成测试运行。
但是当我添加--list
到这些命令时,所有适当的测试都会出现在列表中。我找不到任何理由在使用--filter
.
我错过了关于这里的行为的一些东西--filter
吗?
ios - NSManagedObjects 属性总是 nil 与 Quick-Nimble
过去,我在 XCTests 中测试了我的 CoreData 层,方法是在内存中设置托管对象上下文,如本文所述。基本上:
最近我一直在使用具有相同设置的 Quick/Nimble,并且在expect
语句中它总是将我的 NSManagedObject 的属性读取为 nil,即使它们在我调试测试时具有值。例如,savedItem
NSManagedObject 实例在哪里,当我将其属性存储在变量中时,它将通过:
但如果我savedItem.name
直接测试:
测试失败并显示以下消息:expected ... got <nil>
如何使用 Quick/Nimble 直接测试我的 CoreData 对象?