AIVerification 是一个用于验证用户输入的测试库。
platform :ios, '7.0'
pod 'AIVerification', git: 'https://github.com/WideEyeLabs/AIVerification.git'
要开始,只需导入 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 需要考虑的一些要点。
#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
}