你如何在斯威夫特游乐场打电话给XCTest?

 liqiqinai 发布于 2022-12-31 13:18

我正在看看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")
    }
}

但是,那么你当然不能按下测试按钮以及游乐场是一个连续的REPL,所以你需要知道如何调用测试,没有人知道XCTest内部知道打电话做一个测试运行呢?

2 个回答
  • 我刚刚写了一篇博客文章,解释了如何在Xcode 7中完成这项工作,以及一个运行单元测试的Playground示例.简而言之,您可以在操场内创建一个小型测试运行器对象,该对象运行测试并报告结果.与观察者一起捕捉失败的测试,您可以通过操场获得相当不错的TDD设置.

    http://initwithstyle.net/2015/11/tdd-in-swift-playgrounds/ https://github.com/sshrpe/TDDSwiftPlayground

    2022-12-31 13:20 回答
  • 这是一个完整的示例,适用于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
    

    这是它的样子:

    在此输入图像描述

    不幸的是,您必须打开日志窗口以查看它是通过还是失败.如果您能看到测试结果的颜色,那就太好了......

    2022-12-31 13:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有