コードは書かれた ClassMessage からのものです:
-(void)showMessage:(Message*) msg
{
if( msg == nil )
{
return;
}
UIAlertView* alertView;
if(msg.url)
{
alertView = [[UIAlertView alloc] initWithTitle:msg.title
message:msg.message
delegate:self
cancelButtonTitle:msg.buttonLabel1
otherButtonTitles:msg.buttonLabel2
, nil];
}
else
{
alertView = [[UIAlertView alloc] initWithTitle:msg.title
message:msg.message
delegate:self
cancelButtonTitle:msg.buttonLabel1
otherButtonTitles:nil];
}
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];
}
上記のメソッドの単体テスト ケースを作成します。
-(void)testShowMessageMessageURL{
Message *testMessage = [[Message alloc] init];
testMessage.messageId = 1000 ;
testMessage.message = @"Error message";
testMessage.title = @"Error Title";
testMessage.url = @"http://.……….";
testMessage.buttonLabel1 = @"OK";
testMessage.buttonLabel2 = @"Cancel";
testMessage.buttonLabel2 = nil;
@try {
ClassMessage *testClass = [[ClassMessage alloc]init];
if(testMessage.url != nil){
STAssertNoThrow([testClass showMessage:testMessage],@"Should Pass ");
}
}
@catch (NSException *exception) {
NSLog(@"Exception Name %@, Exception Description %@",[exception name],[exception description]);
STFail(@"Should not caught Exception");
}
}
アプリケーション停止は
CoreFoundation`__HALT:
0xa40880: int3
0xa40881: nopw %cs:(%eax,%eax)
Thread 1: EXC_BreakPoint(code = EXC_i386_BPT,subcode = 0*0)
プログラムの実行を続行をクリックした後
エラーメッセージが表示されました エラーメッセージは次のとおりです。
[testClass showMessage:testMessage] raised -[_NSCFType pointSize]: unrecognized selector sent to instance should not throws any exception.
テストケースをカバーするときにこの問題が発生します。
テストケースをカバーするために私が間違ったことを教えてくれる人はいますか? @前もって感謝します