如何使用 XCTests 测试打印语句?

Aka*_*ndu 8 tdd unit-testing ios xctest swift

我正在尝试测试一个函数是否打印出一些东西。我怎样才能用 XCTests 做到这一点?如果这是可能的,是否有事实理由去做而不是这样做?

谢谢!

Ale*_*ley 5

@Mike Taverne 是对的。对于咯咯笑,如果您确实想针对打印语句进行实际测试,则可以像这样扩展打印功能:

var printWasWrittenTo: Bool = false

public func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
    var output: String = items.map { "\($0)" }.joined(separator: separator)

    printWasWrittenTo = true //test against this variable being changed

    Swift.print(output, terminator: terminator)
}
Run Code Online (Sandbox Code Playgroud)


Mik*_*rne 4

我不知道如何测试声明print,但我认为这并不重要。语句的输出print与您的应用程序实际执行的操作无关。您应该测试您的应用程序更改了哪些数据、向用户显示的内容等。