使用 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= 时,它具有 firstName
和 lastName
的一些值]
这个例子是我编的,如果你不喜欢这个例子,请见谅。
对于你的测试用例,你可以像下面这样
- (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");
}
这是我第一次尝试使用 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= 时,它具有 firstName
和 lastName
的一些值]
这个例子是我编的,如果你不喜欢这个例子,请见谅。
对于你的测试用例,你可以像下面这样
- (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");
}