问题描述
||
我有一个符合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和单元测试