【发布时间】:2016-08-06 13:03:12
【问题描述】:
如何在 XCode 7 中从另一个 XCTestCase 子类的测试方法中运行一个 XCTestCase 子类的测试方法?
我的销售点应用有一个测试套件。
我有一个名为“MathTest”的 XCTestCase 子类,它对应用程序的数学函数进行各种单元测试。它还有一个测试方法 testTillMath 来检查寄存器以查看交易总额是否都符合预期值。
然后我有另一个名为“TicketBuildingTest”的 XCTestCase 子类,它有一个名为 testCreateTickets 的测试方法,该方法从 Excel 电子表格数据源中提取,使用电子表格中的任何数据来组装特定批次的交易到特定于测试环境的特殊核心数据存储中。
testTillMath 方法只有在 testCreateTickets 首次成功运行时才会成功。
如何让 testTillMath 在每次 testCreateTickets 完成后运行?
我尝试从 TicketBuildingTest 内部 #include MathTest.m 以便我可以在 testCreateTickets 结束时调用 testTillMath,但 XCode 不允许我这样做。由于“重复符号_OBJC_CLASS_$_MathTest”,构建失败并出现错误“链接器命令失败,退出代码为1”
我意识到可能有不止一种方法可以给这只猫剥皮;在 PHPUnit 中,我可以指定一组测试方法以一定的顺序连续运行,在完成之前运行每个测试。我如何在 XCode 中做到这一点?
【问题讨论】:
-
在我看来,测试应该尽可能地相互独立。除此之外,我认为这不可能开箱即用。也许您可以尝试创建一个通用超类并将通用测试放在那里。
标签: objective-c xcode unit-testing xcode7 xctest