Ric*_*uss 8 xctest swift swift-playground
我正在看看Bendyworks关于使用Swift进行单元测试的文章:http://bendyworks.com/unit-testing-in-swift/
和你使用Swift一样,我把代码扔进了Playground,然后把它捅了一下.
import Cocoa
class Firewood {
var charred: Bool
init() {
println("initializing our firewood")
charred = false
}
func burn() {
charred = true
}
}
import XCTest
class SimpleFirewoodTests: XCTestCase {
func testBurningActuallyChars() {
let firewood = Firewood()
firewood.burn()
assert(firewood.charred, "should be charred after burning")
}
}
Run Code Online (Sandbox Code Playgroud)
但是,那么你当然不能按下测试按钮以及游乐场是一个连续的REPL,所以你需要知道如何调用测试,没有人知道XCTest内部知道打电话做一个测试运行呢?
Stu*_*rpe 13
我刚刚写了一篇博客文章,解释了如何在Xcode 7中完成这项工作,以及一个运行单元测试的Playground示例.简而言之,您可以在操场内创建一个小型测试运行器对象,该对象运行测试并报告结果.与观察者一起捕捉失败的测试,您可以通过操场获得相当不错的TDD设置.
http://initwithstyle.net/2015/11/tdd-in-swift-playgrounds/ https://github.com/sshrpe/TDDSwiftPlayground
pos*_*sen 12
这是一个完整的示例,适用于Swift 3+,它向您展示了如何执行此操作.这很好,因为现在您可以使用XCTAssert,然后一旦您解决了问题,就可以轻松地将它们直接移动到您的真实测试包中.导入XCTest
class MyTestCase: XCTestCase {
func testExample() {
print("Test1")
XCTAssertTrue(true)
}
func testAnother() {
print("Test2")
XCTAssertFalse(false)
}
}
MyTestCase.defaultTestSuite().run() // Swift 3
MyTestCase.defaultTestSuite.run() // Swift 4
Run Code Online (Sandbox Code Playgroud)
这是它的样子:
不幸的是,您必须打开日志窗口以查看它是通过还是失败.如果您能看到测试结果的颜色,那就太好了......
现在可以通过在测试类的 defaultTestSuite 上调用 run() 来在 Playground 中运行测试:
let testSuite = SimpleFirewoodTests.defaultTestSuite()
testSuite.run()
Run Code Online (Sandbox Code Playgroud)
注意:测试中的断言应替换为 XCTAssertEqual。
归档时间: |
|
查看次数: |
4639 次 |
最近记录: |