使用Quick在测试中设置身份验证标头

时间:2018-04-23 14:23:28

标签: swift testing quick-nimble

我使用QuickNimble为我的应用编写测试。我已经到达了需要身份验证的部分测试。我的应用程序的工作方式是singleton名为AuthenticationManager,其中包含登录等方法。此类还包含当前authenticationToken

public var token: String?

public var headers: HTTPHeaders {
    guard let token = token else {
        return ["Accept": "application/json"]
    }

    return [
        "Authorization": "Bearer \(token)",
        "Accept": "application/json"
    ]
}

这在实际使用中有效,但是,当它与测试一起运行时,token变量的值似乎在我的测试开始时重置。我尝试使用setUp()文件的QuickSpec方法进行登录调用,但这并不起作用。我也尝试在我的测试的it语句中进行te登录调用,这也没有用。这是我现在的代码:

override func spec() {

    describe("When a user validates their current password") {
        describe("And the password is correct") {
            it("should validate the user correctly") {
                AuthenticationManager.shared.login(username: "test@example.com", password: "secret") { _ in }
                expect(Validator.validateCurrentPassword("secret")).to(equal(true))
            }
        }
    }
}

我已经检查过,登录详细信息是正确的,但测试运行时从来没有可用的令牌......有没有人有这方面的经验?

0 个答案:

没有答案