2012-06-15 34 views
0

我正在iOS應用程序中進行測試。我在Setup方法如下代碼:在iOS中測試通過後失敗

- (void)setUp 
{ 
    [super setUp]; 
    rest=[[Restaurant alloc]init]; 
    array=[[NSMutableArray alloc]init]; 
    array=[rest getTheWebData]; 

} 

我執行第一測試情況下,其爲陣列是成功的:後我具有以下測試用例陣列,其中實現是相同

- (void)testDataArray_Should_Not_Nil 
{ 
     STAssertNotNil(array,@"array is nil"); 



} 

預告:

-(void)testResult_Should_Be_Valid_Category_For_Given_Node 
{ 

    STAssertNotNil(array,@"array is nil"); 
} 

這個測試用例由於null數組而失敗。爲什麼在第一種情況下,第二種情況下我得到空值?

回答

0

您的數組指向由getTheWebData方法返回的對象,我認爲它返回的數組是autoreleased,所以很可能您的數組在setUp方法結束後被釋放。 你首先做的alloc init是沒有意義的,它會泄漏,因爲你在下一行再次分配數組。 做到這一點,最好的辦法是這樣的:

array=[[rest getTheWebData] retain]; 

我假設你不使用ARC

相關問題