【发布时间】:2013-09-09 12:21:52
【问题描述】:
每次测试都会调用 SetUp 和 tearDown 方法。是否可以在 setUp 和 tearDown 方法中知道当前(正在运行的)测试名称?我需要根据当前正在运行的测试做一些额外的工作。
【问题讨论】:
标签: unit-testing ocunit
每次测试都会调用 SetUp 和 tearDown 方法。是否可以在 setUp 和 tearDown 方法中知道当前(正在运行的)测试名称?我需要根据当前正在运行的测试做一些额外的工作。
【问题讨论】:
标签: unit-testing ocunit
您可以在SenTestCase 子类中使用selector 方法来获取将要执行的测试方法的SEL(在setUp)/已执行(tearDown)。然后您可以使用NSStringFromSelector 将 SEL 转换为字符串。
这里是一个例子:
NSString *testToExecute = NSStringFromSelector([self selector]);
但是,我会重新考虑您编写测试的方式。我不喜欢根据要运行的测试在 setUp 中执行条件代码的想法...... 为了解决这个问题,您最好将该条件代码提取到一个方法中,并从您想要的所有测试方法中调用该方法。或者你甚至可以为这些测试用例创建一个单独的测试类,在它的 setUp/tearDown 中为它的所有测试方法做额外的工作。
【讨论】:
在 Swift 中:self.name 或 testRun.test.name 会给你这个:-[AppUITests testLoginFlow]
【讨论】: