使用 OCMOCK 创建具有值的虚拟对象

Creating dummy object with values with OCMOCK

这是我第一次尝试使用 OCMOCK 框架来测试我的 iOS 应用程序,对此我有些困惑。

假设我有一个名为 School 的 class 名称,我想测试它。此 class 包含学生。比方说我想通过添加一个学生来开始学校,所以我做了这样的事情 School *school = [School alloc] initWithOneStudent:student];

现在学生Class就是这样

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

@end

现在我如何在我的测试用例中获得一个学生对象,当我模拟它以将其传递给 initWithOneStudent [=17= 时,它具有 firstNamelastName 的一些值]

这个例子是我编的,如果你不喜欢这个例子,请见谅。

对于你的测试用例,你可以像下面这样

- (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");
}