组合 1.0.1

组合 1.0.1

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
Released最新发布2023年3月
SwiftSwift 版本4.0

Alex Maimescu maintained.



组合 1.0.1

  • 作者:
  • Alex Maimescu

组合

Twitter: @amaimescu License

组合 是一个用于iOS测试的实用框架,适用于快速 边界测试

边界测试边界值分析,涉及使用输入域的极端值生成测试案例,例如最大、最小、刚刚在/外边界上,典型值和错误值。它类似于等价类划分,但侧重于“角落案例”。

该框架只做了两件事

  1. 从测试数据输入集中生成一组组合;
  2. 为每个组合生成运行时单元或UI测试;

查阅API参考以获取更多信息。

简单示例

我们有一个包含四个字段的输入表单:姓名首字母电子邮件密码性别

我们还为每个字段定义了测试边界值

  • 姓名首字母: John Smith空字符串
  • 电子邮件: [email protected]john.smith@空字符串
  • 密码: 12345~@#123ABC空字符串
  • 性别: 男性女性

组合 从输入测试数据值中获得一组,并将其转换为为生成的每个值组合的 运行时测试

所以,在我们的例子中,组合将是

对于每一种组合,都会生成一个测试用例(%code%XCTestCase%code%)。

UI测试组合生成的运行示例。

Combinations

安装

Carthage

如果您正在使用 %strong>Carthage%strong%,您可以在您的 %code>Cartfile%code% 中添加以下行,以在您的 workspace 中构建库。

github "alexmx/Combinations"

CocoaPods

如果您正在使用 %strong>CocoaPods%strong%,您可以在 %code>Podfile%code% 中添加以下行,以集成库。

platform :ios, '8.0'
use_frameworks!

target 'YourAppTarget' do
    pod "Combinations"
end

手动安装

要将 %strong>Combinations%strong%library 引入库,您需要从提供的源代码构建一个动态框架,并将其包含到您的项目中,或者将其整个 %strong>Combinations%strong%library 作为子项目通过将其复制到项目目录中,或者通过 Git 子模块包含。

使用方法

该库只需要重写两个方法:%code>valuesForCombinations%code% 和 %code>assertCombination:%code%

import XCTest
import Combinations

class MyTests: CombinationsSpec {
    
    override func setUp() {
        super.setUp()
    }
    
    // Provide input values for Combinations
    override class func valuesForCombinations() -> [[Any]]? {
        return [
            [1, 2, 3, 4],
            ["John Smith", "John", ""]
        ]
    }
    
    // This method will be called for each generated combination:
    // [1, "John Smith"], [1, "John"], [1, ""], [2, "John Smith"], etc.
    override func assertCombination(_ combination: [Any]) {
        
        // Perform required asserts on combination
    }
}

许可证

本项目采用MIT许可证条款授权。查看LICENSE文件。