2

コードは書かれた 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.

テストケースをカバーするときにこの問題が発生します。

テストケースをカバーするために私が間違ったことを教えてくれる人はいますか? @前もって感謝します

4

0 に答える 0