1

IOS で の関数を UT したいのですがViewController、実行した後、error:nil argument と言い続けます。解決方法がわかりません。

これはJavaコードです:

#import "MasterViewController.h"  
#import <GHUnitIOS/GHUnit.h>  

@class MasterViewController;  

@interface MasterViewControllerTest : GHViewTestCase{  
NSString* _type;  
NSString* _msgId;  
NSString* _url;  
NSString* _opened;  
}@property(nonatomic,retain) MasterViewController* masterViewController;  
@end  

@implementation MasterViewControllerTest  
@synthesize masterViewController;  

-(void)setUp{  
MasterViewController *viewController = [[MasterViewController alloc]init];  
self.masterViewController = viewController;  
}  

-(void)testPostViewTimeToServ{      
_type = @"m";  
_url = nil;  
_opened = nil;  
_msgId = @"";  

bool resultValue = [self.masterViewController saveAndPostViewMagBodyTime:_type      arg_url:_url arg_open:_opened mid:_msgId];  

GHAssertNotEquals(resultValue, YES, @" post msgIs is nil fail");  

}  
@end  

testPostViewTimeToServエラー表示は次のとおりです。


テスト スイート「テスト」が開始されました。MasterViewControllerTest/testPostViewTimeToServ の開始 2012-04-02 20:50:42.269 kMsgGHUnitTests[7747:10b0f] 名前: NSInvalidArgumentException ファイル: 不明 行: 不明 理由: * -[NSPlaceholderString initWithString:]: nil 引数


なぜ?

4

1 に答える 1

1

nilへの呼び出しで 2 つの引数の値を渡すため、エラーが発生していますsaveAndPostViewMagBodyTime:arg_url:arg_open:arg_mid:。そのメソッドのどこかで、これらの nil 値のいずれかまたは両方を使用して文字列オブジェクトを初期化し、それがエラーをスローしています。

このエラーを回避する簡単な方法は、nil の代わりに空の文字列値を渡すことです。

_url = @"";  
_opened = @"";
于 2012-08-31T06:47:41.857 に答える