2016-08-25 57 views
0

這是我第一次嘗試使用OCMOCK框架來測試我的iOS應用程序,我對此有一些疑惑。使用OCMOCK創建具有值的虛擬對象

可以說我有一個叫做School的類名,我想測試它。這個班級包含學生。假設我想通過添加一個學生開始學校,所以我做了一些這樣的事情School *school = [School alloc] initWithOneStudent:student];

現在學生類是這樣的。

@interface Student : NSObject 
@property (nonatomic, strong) NSString *firstName; 
@property (nonatomic, strong) NSString *lastName; 

@end 

現在怎麼我可以得到我的測試情況下,學生對象,它具有firstNamelastName一些值當我嘲笑它它傳遞給initWithOneStudent

我只是做了這個例子,所以請原諒如果你不喜歡這個例子。

回答

0

爲了您的測試案例你可以把它像下面

- (void)testCase { 
    id mockStudent = OCMClassMock([Student class]); 
    OCMStub([mockStudent firstName]).andReturn(@"firstName"); 
    OCMStub([mockStudent lastName]).andReturn(@"lastName"); 

    School *school = [School alloc] initWithOneStudent:mockStudent]; 

    XCTAssertNotNil(school); 
    XCTAssertEqual(school.student.firstName, @"firstName"); 
    XCTAssertEqual(school.student.lastName, @"lastName"); 
}