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

标签 ios objective-c unit-testing

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

- (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);
}

这给了我一个错误:

caught "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;
}

最佳答案

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

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

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

相关文章:

objective-c - CoreData中的NSDate是否封装了时区?

.net - 给定以下代码,我应该编写哪些测试?

c# - 在运行测试类清理时,由于出现以下错误 : 80040154.,为具有 CLSID {} 的组件检索 COM 类工厂失败

iphone - 将图像命名为导航栏名称

ios - 如何获取触摸大小

iphone - UIScrollView scrollToTop 没有被 iPhone 调用

c# - Moq - 传递参数时使用 It.Is<> 与不使用它

ios - 如何处理支持文件目录中的同名文件

ios - Realm +地幔: how to avoid multiple inheritance duplication when integrating both frameworks?

ios - 应用 SIGABRT 崩溃