如何使用 XCTests 测试打印语句?
How do I use XCTests to test for print statements?
我正在尝试测试一个函数是否打印出一些东西。我如何使用 XCTests 做到这一点?如果这是可能的,是否有事实理由去做和不做?
谢谢!
我不知道有什么方法可以测试 print
语句,但我认为这无关紧要。 print
语句的输出与您的应用实际执行的操作无关。您应该测试您的应用更改了哪些数据、向用户显示了什么等。
@Mike Taverne 是对的。如果你真的想针对 print 语句进行实际测试,你可以像这样扩展 print 函数:
var printWasWrittenTo: Bool = false
public func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
var output: String = items.map { "\([=10=])" }.joined(separator: separator)
printWasWrittenTo = true //test against this variable being changed
Swift.print(output, terminator: terminator)
}
我正在尝试测试一个函数是否打印出一些东西。我如何使用 XCTests 做到这一点?如果这是可能的,是否有事实理由去做和不做?
谢谢!
我不知道有什么方法可以测试 print
语句,但我认为这无关紧要。 print
语句的输出与您的应用实际执行的操作无关。您应该测试您的应用更改了哪些数据、向用户显示了什么等。
@Mike Taverne 是对的。如果你真的想针对 print 语句进行实际测试,你可以像这样扩展 print 函数:
var printWasWrittenTo: Bool = false
public func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
var output: String = items.map { "\([=10=])" }.joined(separator: separator)
printWasWrittenTo = true //test against this variable being changed
Swift.print(output, terminator: terminator)
}