AIVerification 1.0.0

AIVerification 1.0.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

未标记者维护。



  • 作者
  • Brian Thomas

AIVerification 是一个用于验证用户输入的测试库。

在您的 Podfile 中

platform :ios, '7.0'
pod 'AIVerification', git: 'https://github.com/WideEyeLabs/AIVerification.git'

AIVerification 简介

要开始,只需导入 AIVerification 头文件(AIVerification.h)。验证是简单的人类可读断言,用于测试 UIView 子类的状态。在运行之后,VerificationTest 为每个失败的断言生成错误消息,然后可以显示给用户。以下是一个只有单个断言的示例测试...

NSArray *errors = [VerificationTest forInputs:inputViews 
        andTestCases:^(VerificationTest *inspect) {
  [inspect.textField[@"Name"] verifyItIsNotEmpty];
}];
// Full example below

如果此测试中的断言失败,错误数组将填充错误字符串“姓名字段不能为空”。可以通过调用验证方法来定制错误消息,这些方法还接受一个 NSString 错误参数(例如,verifiyItIsNotEmptyWithError:(NSString))。

AIVerification 是一个通过检查对象而不是使用子类化来测试的框架,因此它与您可能希望在项目中包含的任何 UIView 子类很好地配合(尝试 JVFloatLabeledTextField)。

“这对我有用吗?”

当然,您需要更多信息来决定这对您是否有用。以下是关于 AIVerification 需要考虑的一些要点。

  • 没有回调来支持对输入更改的持续测试(尝试 TSValidatedTextField
  • 验证断言,例如 'verifyItIsNotEmpty',仅在测试块中调用时才有意义(它们当前没有返回值)。
  • 当前的验证断言集合非常有限。但是,添加新的断言是一项相对简单的工作。

完整示例

#import <AIVerification.h>

// ..
// ..
NSDictionary *inputViews = @{ @"Name" : _nameField, 
        @"Password" : _passwordField, 
        @"Confirmation" : _confirmationField };

NSString *passwordText = self.passwordField.text;

NSArray *errors = [VerificationTest forInputs:inputViews 
        andTestCases:^(VerificationTest *inspect) {
  [inspect.textField[@"Name"] verifyItIsNotEmpty];
  [inspect.textField[@"Password"] verifyItIsLongerThan:@6];
  [inspect.textField[@"Confirmation"] verifyItMatches:passwordText 
          withDescription:@"Password Field"];
}];

if ([errors count] != 0)
{
  // handle errors
  NSString *errorMessage = [errors componentsJoinedByString:@"\n\n"];
}
else
{
  // proceed
}