LCTableViewTests
@interface LCTableViewTests : XCTestCase
@end
@implementation LCTableViewTests
//驗證 OCMock Stub method 本身
- (void)testOCMockStubMethod
{
//Arrange
id protocolMock = OCMProtocolMock(@protocol(UITableViewDataSource));
OCMStub([protocolMock numberOfSectionsInTableView:OCMOCK_ANY]).andReturn(1);
OCMStub([protocolMock tableView:OCMOCK_ANY numberOfRowsInSection:0]).andReturn(40);
OCMStub([protocolMock tableView:OCMOCK_ANY cellForRowAtIndexPath:OCMOCK_ANY]).andReturn(nil);
XCTAssertEqual([protocolMock numberOfSectionsInTableView:OCMOCK_ANY], 1);
XCTAssertEqual([protocolMock tableView:OCMOCK_ANY numberOfRowsInSection:0], 40);
XCTAssertNil([protocolMock tableView:OCMOCK_ANY cellForRowAtIndexPath:OCMOCK_ANY]);
}
// 透過 Stubs 輔助驗證 UITableViewDataSource 的正確性
- (void)testTableViewDataSourceNumberOfRowsInSecitonWithStub
{
//Arrange
id protocolMock = OCMProtocolMock(@protocol(UITableViewDataSource));
OCMStub([protocolMock numberOfSectionsInTableView:OCMOCK_ANY]).andReturn(1);
OCMStub([protocolMock tableView:OCMOCK_ANY numberOfRowsInSection:0]).andReturn(40);
OCMStub([protocolMock tableView:OCMOCK_ANY cellForRowAtIndexPath:OCMOCK_ANY]).andReturn(nil);
UITableView *tableView = [[UITableView alloc] init];
tableView.dataSource = protocolMock;
//Act
[tableView reloadData];
//Assert
NSInteger rowCount = [tableView numberOfRowsInSection:0];
XCTAssertEqual(rowCount, 40);
}
@end