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

- (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]:无法识别的选择器已发送给类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;
}

最佳答案

确保您的类别已添加到测试目标中,否则它将在您的测试中不可用。

为此,只需从文件导航器中选择您的 class ,然后按右侧的文档检查器即可。在“目标成员资格”部分中,检查您的测试目标。

关于ios - 在XCTestCase中对类方法进行单元测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32355204/

10-12 07:05