JSONMatcher 0.1.0

JSONMatcher 0.1.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2016年5月
SPM支持 SPM

giginet 维护。



JSONMatcher 是一个 Swift 测试的 JSON 匹配器库。它作为 Nimble 的扩展。

这个库受到了 rspec-json_matcher 的启发。

用法

示例

import XCTest
import Nimble
import JSONMatcher

class ExampleTestCase: XCTestCase {
    func testComplexExample() {
        expect([
            "name" : "Snorlax",
            "no" : 143,
            "species" : "Sleeping",
            "type" : ["normal"],
            "stats" : [
                "hp" : 160,
                "attack" : 110,
                "defense" : 65,
                "special_attack" : 65,
                "special_defense" : 65,
                "speed" : 30
            ],
            "moves" : [
                ["name" : "Tackle", "type" : "normal", "level" : 1],
                ["name" : "Hyper Beam", "type" : "normal", "level" : NSNull()],
            ]
        ]).to(beJSONAs([
            "name" : "Snorlax",
            "no" : Type.Number, // value type matching
            "species" : try! NSRegularExpression(pattern: "[A-Z][a-z]+", options: []), // regular expression matching
            "type" : ["[a-z]+".regex], // shorthands for NSRegularExpression
            "stats" : [
                "hp" : 160,
                "attack" : 110,
                "defense" : 65,
                "special_attack" : 65,
                "special_defense" : 65,
                "speed" : 30
            ],
            "moves" : [
                ["name" : "Tackle", "type" : "[a-z]+".regex, "level" : Type.Number], // nested collection
                ["name" : "Hyper Beam", "type" : "normal", "level" : NSNull()],
            ]
        ]))
    }
}

匹配器

  • beJSON
  • beJSONIncluding
  • beJSONAs
expect("{\"name\": \"Pikachu\"}").to(beJSON())
expect(["name" : "Pikachu", "no" : 25]).to(beJSONIncluding(["name" : "Pikachu"]))
expect(["name" : "Pikachu", "no" : 25]).to(beJSONAs(["name": "Pikachu", "no" : 25]))

要求

支持的 Swift 版本

  • Swift 2.2

依赖

  • Nimble >= 4.0.0

支持的平台

  • iOS 8.0 以上
  • OSX 10.9 以上
  • tvOS 9.0 以上

安装

作者

giginet <[email protected]>

许可证

MIT 许可证