问题标签 [cedar-bdd]
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.
objective-c - 测试核心数据应用
我应该如何测试findByAttribute
我添加到的实例方法NSManagedObject
?
起初,我想以编程方式创建一个独立的 Core Data 堆栈,如 Xcode 的 Core Data Utility Tutorial 所示。而且,在我搜索该文档时,我遇到了Core Data Fetch Request Templates并认为可能不是创建我创建的方法,而是我应该制作 fetch 请求模板,但它看起来不像entityName
可以通过 fetch 变量请求模板,可以吗?我可以创建一个获取请求模板,NSManagedObject
以便所有子类都可以使用它吗?嗯,但是我仍然需要一个entityName
并且我认为没有办法动态获取调用该方法的子类的名称。
无论如何,看起来一个很好的解决方案是创建一个用于测试的内存中核心数据堆栈,独立于生产核心数据堆栈。@Jeff Schilling 还建议创建一个内存持久存储。Chris Hanson 还创建了一个持久存储协调器来对 Core Data 进行单元测试。这似乎类似于 Rails 有一个单独的数据库进行测试。但是,@iamleeg 建议删除 Core Data 依赖项。
您认为哪种方法更好?我个人更喜欢后者。
更新:我正在使用 OCHamcrest 和 Pivotal Lab 的 Cedar 对核心数据进行单元测试。除了编写下面的代码之外,我还在目标中添加了NSManagedObject+Additions.m
和。User.m
Spec
如果你能告诉我为什么如果我不强制(id)
fbId
findByAttribute
传递给我得到的论点
然后你得到奖励积分!:)如果论点应该是an ,我似乎不必将 anNSNumber
转换为 an因为是 an ,对吗?id
id
NSNumber
id
ios - 如何设置 cedar 以对 ios 应用程序进行 bdd 测试?
我正在尝试设置雪松,但很难让它工作。我正在尝试按照 github 上的说明进行操作。
我正在使用 xcode 4.2。
我不确定的第一步是:
“为项目中的测试创建一个 Cocoa Touch “应用程序”目标。将此目标命名为 UISpecs 或类似名称。”
a) 我不确定在使用 cedar 进行测试时是否能够将 ARC 用于我的主要应用程序。b)我很确定我不能使用 ARC 来构建雪松本身,我想我也不想这样做。c) 我不确定我能否将 ARC 用于包含我的规格的测试项目。d) 我不确定我应该使用哪个应用程序模板来创建应用程序来容纳规范。
我使用 ARC 和单窗口应用程序模板创建了一个新的主应用程序。我使用空的应用程序模板创建了一个新的应用程序来容纳我的规格而没有 ARC。
当我打开包含我的规格的测试应用程序的 plist.info 文件时,我没有看到“主 nib 文件基本名称”选项。所以我忽略了这一步。
现在我来一步:
“将 Cedar-iOS 静态框架添加到您的项目中,并将您的 UISpecs 目标与其链接。”
所以我去了规范应用程序构建目标并将 ~/Library/Developer/Xcode/DerivedData/Cedar-borwneaogydgaodbtmfyaccykqxn/Build/Products/Debug-iphoneos/libCedar-StaticLib.a 文件添加到项目中的“链接二进制文件与库" “构建阶段”选项卡下的选项卡。
然后,我将 -ObjC、-lstdc++ 和 -all_load 添加到 UISpecs 目标的 Other Linker Flags 构建设置中。
接下来,在包含规范的应用程序下,我创建了一个名为 TestSpec.m 的新文件并将此代码添加到其中,以尝试获取失败的规范:
当我尝试在模拟器中运行 specs 项目时,我遇到了一些关于使用 ARC 时不支持 alloc 和 autorelease 的错误。我想这意味着我的主应用程序不能使用 ARC,而我的规范应用程序没有。我删除了我的规范应用程序并再次尝试,这次使用 ARC。
我从 main.m 代码中删除了自动释放池和释放代码以符合 ARC。
我现在得到两个构建错误:
1)在main.m中:文件://localhost/Users/nelsond/workspace/BIM360UIArchitecture/BIM360UIPrototype/BIM360Issues-IOS/BIM360Issues-IOS-Specs-ARC/main.m:错误:词法或预处理器问题:'Cedar-iOS /Cedar-iOS.h' 文件未找到 2) 在 TestSpec.m 中:file://localhost/Users/nelsond/workspace/BIM360UIArchitecture/BIM360UIPrototype/BIM360Issues-IOS/BIM360Issues-IOS-Specs-ARC/TestSpec.m: 错误:词汇或预处理器问题:找不到“Cedar/SpecHelper.h”文件
我很困惑接下来要调试什么。
ios - Error running 'Cedar' unit tests from command line
I'm using the cedar testing framework and trying to run the tests from command line. The build crashes with this error:
The tests run from xcode without any problems, I just can't get them to work from command line. Any ideas? Thanks
xcode - 命名空间“std”中没有名为“shared_ptr”的类型
希望这对其他人有帮助
尝试使用 Cedar BDD 编译 iOS 项目一直失败,在命名空间“std”错误消息中没有名为“shared_ptr”的类型。这显然是一个 C++ 错误,但无法理解为什么 Xcode 使用的 C++ 库没有定义;直到我发现目标的构建设置提供了两个库可供选择时才定义 shared_ptr 类型
- libstdc++(编译器默认)
- libc++
ios - 使用 Cedar 测试 iOS 控制器
我正在尝试使用 Cedar 测试控制器,但无法真正理解为什么它不起作用。控制器永远不会被显示,viewDidLoad 或 viewDidAppear 永远不会被调用。这是雪松不应该做的事情还是只是我的错误?
objective-c - Cedar 测试的链接器错误
为了自学 Objective C 和 Cocoa,我想写一个 diff 工具。我正在使用Cedar 测试框架,但我一辈子都无法构建我的测试包。
XCode 不会向我显示任何警告,直到我点击“运行测试”,当链接器将其玩具扔出婴儿车时。我得到的确切错误是:
这是我的项目的文件夹结构:
这是我在 Cedar wiki 上的示例中的第LowestCommonSubsequenceTests.mm
一个测试:
这里是LowestCommonSubsequence.h
:
这是LowestCommonSubsequence.m
:
我的#import
陈述有误吗?文件夹结构不正确?我是否错误地设置了构建目标?
我在 Cedar wiki 上发现了我的问题,它建议在调试模式下运行,但据我所知,一切都已设置为使用默认设置在调试模式下运行。
抱歉,如果这是一个愚蠢的问题。这实际上是我编写的第一个 Objective C 代码。
uitableview - 使用 Cedar 测试presentedViewController 的存在
当我自动点击表格行单元格时,我正在尝试测试是否存在呈现的视图控制器。当我尝试测试控制器的presentedViewController 是否属于给定类型的类时,结果总是为零。我假设新呈现的视图控制器正在转换为呈现的视图控制器,这就是 [controllerpresentViewController] 为 nil 的原因。
我正在使用 Cedar BDD 测试框架。我已经安装了 PivotalCore 库来提供自动“点击”功能。
这是规范代码:
最后的测试包含有问题的代码。我的问题是:如果presentViewController 不为零,我是否需要等待一两秒才能测试?如果是这样,我该怎么做?
这是点击单元格后应执行的代码:
我仔细检查以确保在点击单元格后该代码实际运行;确实如此。
谢谢!
ios - Cedar - 检查是否使用不同的值调用了两次方法
我正在尝试验证是否使用特定值调用了两次方法,但我似乎无法验证这两个调用,只是第一个调用。我已经验证了该方法被调用了两次并且值是正确的,但是我不确定如何编写雪松规范。
这是我所拥有的:
我得到的错误是:
ios - Cedar 中带有 AFNetworking 的 OHHTTPStubs
我正在努力设置一个简单的网络 POST 请求存根。我已经尽可能多地从 OHHTTPStubs 文档和其他在线资源中建模,但我认为我一定遗漏了一些东西。我想查看基于该onStubActivation
方法的日志记录调用的存根。我的测试看起来像:
客户端看起来像:
ios - swift/objc 项目和测试目标的 Cocoapod 问题
我正在处理一个主要是 OBJc 项目,测试是用 Cedar 完成的。我已经开始在我的测试目标中包含 swift 并且遇到 cocoapod 框架的问题
Cocoapods 版本是 0.39.0(升级到 beta 给我带来了更多问题,所以现在坚持使用稳定版)我的 podfile 看起来像这样:
我现在遇到的问题是在构建测试时,它给了我主应用程序目标中所有 pod 的“找不到符号”错误。
我做了什么:
- 向两个目标添加了 pod(产生错误说类存在两次)
- 尝试仅为应用目标设置使用框架
- link_with,产生与将它们添加到两个目标相同的结果
我有一个完整的 swift 应用程序,在将测试 pod 设置为仅测试目标时工作得很好,所以我假设因为这是一个混合代码库,所以我看到了一些问题。