测试用例在[[MyObject alloc] init]处失败

问题描述

|| 我有一个符合UIKeyInput协议的UITextView的子类。所以我写了一些逻辑测试。 我没有错误,所有其他测试运行良好,但是当应该创建myTextView对象时:
MyTextView *myTextView = [[MyTextView alloc] initWithFrame:frame];
测试停止(如断点)它将不会继续 我不知道为什么呢?也许MyTextView的对象不能在逻辑测试中创建?我需要在这里进行应用测试吗?如果是这样,有什么规则? 添加: 这是测试之一:(我还有几个测试,但所有测试都停在第一行)
    - (void)testHasText{
    MyTextView *myTextView = [[MyTextView alloc] initWithFrame:CGRectMake(0,100,100)];
    [myTextView setText:@\"some text\"];
    STAssertTrue([myTextView hasText],@\"hasText Failed: It has text!\");
    [myTextView setText:@\"\"];
    STAssertFalse([myTextView hasText],@\"hasText Failed: It it empty!\");
    [myTextView release];

}
这是MyTextView中的实现:
- (BOOL)hasText{
    return [[self text] length]>0?YES:NO;
}
我在MyTextView中评论了其他方法,只留下了与UIKeyInput相关的三个方法。 另外,我已将MyTextView.m添加到LogicTests目标的“编译源”列表中。即使我没有收到任何链接错误或警告,这可能是配置问题吗?     

解决方法

        仅在测试包中运行的逻辑测试不能使用UI元素。您需要为此创建一个应用程序测试。 我可以建议您看看Gorilla Logic的FoneMoneky,以执行与UI相关的测试。它还将使您能够在单元测试中测试实际的UI。     ,        您对
wmTextView
有一个参考,似乎不存在。那是我要检查的第一件事。 第二个是过去的问题:UIKit和单元测试