ios - 测试时禁用断言

标签 ios objective-c xcode unit-testing

我想测试我的 API 的契约,例如,如果创建一个对象时带有一些参数为 nil,则会引发断言,但如果断言被禁用(发布配置)它简单地返回零。

我的测试方案具有调试的构建配置,因此在我的 API 契约(Contract)测试中,我检查创建一个带有一些参数为 nil 的对象是否会返回一个 nil 对象。但是构造函数的断言在 XCTAssertNil 执行之前提出,所以我的测试总是失败。

我可以在测试时禁用断言吗?我尝试将 NS_BLOCK_ASSERTIONS 添加到启动时传递的方案参数中,但这不起作用。

最佳答案

已解决,我添加了一个新配置,从 Debug 复制,称为 Test

enter image description here

然后在build设置预处理器宏中添加 NS_BLOCK_ASSERTIONS=1

enter image description here

最后,更改测试方案中的测试 Action 。

enter image description here

现在可以了:)

关于ios - 测试时禁用断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30080466/

相关文章:

ios - APNS 与主题一起使用吗?

ios - 如何自动设置地理位置并快速在后台创建地理围栏?

objective-c - 应用程序提交 iOS 的 Bundle ID

iphone - MBProgressHUD 防止锁定导航 Controller

iphone - 测试应用内购买可以在一台设备上运行,但不能在另一台设备上运行

ios - 如何在另一个线程上正确打开和关闭 NSStream

ios - 每次点击取消按钮时,搜索栏都会向下跳一行

objective-c - 将值添加到顶点数组

ios - 如何使用 SDWebImage 将图像从 JSON 加载到 UIImageView?

ios - 如何让所有 CFTree Siblings 处于相同的深度?