2016-08-25 58 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"); 
}