【问题标题】:Testing Swift Extensions测试 Swift 扩展
【发布时间】:2017-05-30 09:16:26
【问题描述】:

我尝试创建一个 cocoapod 来扩展 Swift 中的 Primitives。我无法通过测试或配置错误:

这是我的敏捷/快速测试:

// https://github.com/Quick/Quick

import Quick
import Nimble
import SwiftRubySyntax


class TableOfContentsSpec: QuickSpec {
    override func spec() {
        describe("alphanumeric") {

            beforeEach {
                var validString = "abc"
                var invalidString = "abc12"
            }

            it("validates alphas to be true") {
                expect(validString).to(equal(validString)) // ***
            }

        }
    }
}

*** 我收到unresolved identifier "validString"error

我真正想要测试的是扩展。但是变量也没有附加到我的字符串上:

public extension String {

    public var isAlpha: Bool {

        let alphaSet = CharacterSet.uppercaseLetters.union(.lowercaseLetters).union(.whitespacesAndNewlines)
        return self.rangeOfCharacter(from: alphaSet.inverted) == nil
    }

}

【问题讨论】:

  • 请注意,您的测试实际上并没有做任何事情。它将validStringvalidString 进行比较,而您实际上并未测试isAlpha
  • 这仅用于 sanityChecking :-) “在现实”生活中它正在测试 isAlpha

标签: swift xctest quick-nimble nimble


【解决方案1】:

将变量放在beforeEach 之外,然后将它们设置在beforeEach

describe("alphanumeric") {
    var validString: String!
    var invalidString: String!

    beforeEach {
        validString = "abc"
        invalidString = "abc12"
    }
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多