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

时间:2011-06-15 06:56:18

标签: iphone objective-c cocoa-touch unit-testing

我有一个符合UIKeyInput协议的UITextView子类。所以我写了一些逻辑测试。 我没有错误,所有其他测试运行良好但是当我的myTextView对象应该被创建时:

MyTextView *myTextView = [[MyTextView alloc] initWithFrame:frame];

测试停止,(如断点)它不会继续

我想知道为什么会这样?也许在逻辑测试中无法创建MyTextView的对象?我需要在这里进行应用测试吗?如果是这样,那么规则是什么?

ADDED

这是其中一项测试:(我还有一些测试,但所有测试都停在第一行)

    - (void)testHasText{
    MyTextView *myTextView = [[MyTextView alloc] initWithFrame:CGRectMake(0, 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目标中的Compile Source列表中。即使我没有收到任何链接器错误或警告,这可能是配置问题吗?

2 个答案:

答案 0 :(得分:1)

仅在测试包中运行的逻辑测试无法使用UI元素。您需要为此创建一个应用程序测试。

我建议您查看Gorilla Logic的FoneMoneky来执行与UI相关的测试。它还使您能够在单元测试中测试实际的UI。

答案 1 :(得分:0)

你有wmTextView的一个引用,它似乎不存在。那将是我要检查的第一件事。

第二个是过去的问题:UIKit and unit testing

相关问题