在我的应用程序中,我按以下方式执行单元测试:
.h文件:
@interface MyAppTests : SenTestCase
{
SMAppDelegate* _appDelegate;
SMMenuViewController* _menuViewController;
UIView* _mainView;
}
.m文件
- (void)setUp
{
[super setUp];
_appDelegate = [[UIApplication sharedApplication]delegate];
_menuViewController = [[SMMenuViewController alloc]init];
_mainView = [_menuViewController view]; // to force the view to load
}
- (void)tearDown
{
// Tear-down code here.
_mainView = nil;
_menuViewController = nil;
_appDelegate = nil;
[super tearDown];
}
- (void)testMenuViewisNotNil
{
STAssertNotNil(_menuViewController, @"menuViewController is nil");
}
当我运行应用程序时,它运行正常,但是当我测试时会出现错误,说明以下内容:
线程1:EXC_BREAKPOINT(代码= EXC_I386_BPT,子代码= 0x0)
它指向ViewDidLoad()
中的这一行messageTextView = [[UITextView alloc]init];
messageTextView在.h文件中声明,它不是使用Interface Builder创建的,我使用addSubview方法将其添加到视图中。我这样声明:
@interface SMMenuViewController : UIViewController <UITextFieldDelegate>
{
}
@property (strong, nonatomic) UITextView *messageTextView;
messageTextView得到合成,我在viewDidUnload中“nil”它。我仍然不知道为什么它在单元测试中失败了。
谁能告诉我为什么?
非常感谢任何帮助!
此致
佐利