Ios 如何将助手方法添加到Xcode中的XCTestCase单元?
有没有一种方法可以将一个方法添加到您的XCTestCase中,而不将其计为测试?类似于已存在的Ios 如何将助手方法添加到Xcode中的XCTestCase单元?,ios,objective-c,xcode,xctest,Ios,Objective C,Xcode,Xctest,有没有一种方法可以将一个方法添加到您的XCTestCase中,而不将其计为测试?类似于已存在的setUp和tearDown 一个用例是在特定的时间点对我的一些测试用例中的对象执行特定的操作,同时访问类本身的实例变量(它可以使用静态方法和外部帮助文件)只有以测试开始的方法才会被视为测试。因此,只需将助手方法命名为不是以test开头的方法 顺便说一下,我不想在助手方法中放入xctasert语句。它起作用(适当的测试将失败),但在某些情况下,很难破译是哪些测试导致helper方法中的assert触发。
setUp
和tearDown
一个用例是在特定的时间点对我的一些测试用例中的对象执行特定的操作,同时访问类本身的实例变量(它可以使用静态方法和外部帮助文件)只有以
测试开始的方法才会被视为测试。因此,只需将助手方法命名为不是以test
开头的方法
顺便说一下,我不想在助手方法中放入xctasert
语句。它起作用(适当的测试将失败),但在某些情况下,很难破译是哪些测试导致helper方法中的assert触发。我使用Steve建议的xctasert
函数中的可选行
参数,因此测试失败出现在调用站点,并附加检查而不是测试,因此它不会被识别为测试失败
private func checkSunSetsInTheEast(callLine: UInt = #line) {
XCTFail(callLine: #line)
}
如果您希望您的断言在实际测试中可见,另一种选择是:
func testSun() {
XCTAssert(sunSetsInEast)
}
private var sunSetsInEast: Bool { return false }
保留测试前缀并将测试设置为private
将停止它们作为测试运行,但XCode的UI仍会将它们识别为测试,因此最好避免在助手函数的开头添加测试前缀。只需添加一个不以“test”开头的方法即可。哈利路亚,感谢you@Rob您应该将您的评论作为实际答案发布,以便Madeban能够接受。@hasseg谢谢。当我发表我的评论时,我认为问题不仅仅是方法名前缀。很高兴我们回答了Madeban的问题。另外,在Swift中,您可以为助手方法提供默认行号参数,并将其传递给xctasert
。这样,测试失败将出现在正确的调用站点,而不是在helper方法中。例如:func checkEqual(ustring:string,应为:string,line:UInt=#line){XCTAssertEqual(.string,应为,line:line)}