我有一个符合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列表中。即使我没有收到任何链接器错误或警告,这可能是配置问题吗?
答案 0 :(得分:1)
仅在测试包中运行的逻辑测试无法使用UI元素。您需要为此创建一个应用程序测试。
我建议您查看Gorilla Logic的FoneMoneky来执行与UI相关的测试。它还使您能够在单元测试中测试实际的UI。
答案 1 :(得分:0)
你有wmTextView
的一个引用,它似乎不存在。那将是我要检查的第一件事。
第二个是过去的问题:UIKit and unit testing