在XCTestCase中对类方法进行单元测试

3

我目前正在项目中开始编写一些单元测试。然而,似乎我遇到了一些问题:

- (void)testThatItIsValidNumber
{
    BOOL result1 = [NSString isValidNumber:@"1234567890987654"];
    BOOL result2 = [NSString isValidNumber:@" ^123dadaj"];
    BOOL result3 = [NSString isValidNumber:@"123 09 123"];
    BOOL result4 = [NSString isValidNumber:@"~#)(^%@*#&Bhadahj1@"];

    XCTAssertFalse(result1);
    XCTAssert(result2);
    XCTAssertFalse(result3);
    XCTAssert(result4);
}

这给我报错了:

捕获到 "NSInvalidArgumentException","+[NSString isValidNumber]: unrecognized selector sent to class 0x1069448e0"

有人能指导我正确的方法吗?

编辑:

+ (BOOL)isValidNumber:(NSString *)value {
    const char *cvalue = [value UTF8String];
    unsigned long len = strlen(cvalue);
    for (int i = 0; i < len; i++) {
        if(!isNumber(cvalue[i])){
            return FALSE;
        }
    }
    return TRUE;
}

NSString没有isValidNumber方法。可能您忘记导入某些类别? - Igor
我已经在头文件中导入了类别。 - Zigii Wong
请在此处发布您的类别实现。 - Igor
1个回答

1
请确保您的类别已添加到测试目标中,否则它将无法在测试中使用。
要做到这一点,只需从文件导航器中选择您的类,并在右侧按下文档检查器。在目标成员资格部分,勾选您的测试目标即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接