自分のクラスのプライベートプロパティである配列を模擬したいと思います。私はこれを行うことで私のユニットテストでそれを利用可能にしました。ios:プライベートプロパティの偽装
@interface MyViewController()
@property (nonatomic, strong) NSArray myArray;
@end
は私がPerson
と呼ばれるタイプを持っていると仮定しますと、この配列は、人物オブジェクトが含まれている必要があります(これは私のユニットテストファイル内にあります)。だから私は私のテストケース
- (void)testBeneficiariesCount {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
id mockArray = OCMClassMock([NSArray class]);
self.myVC.myarray = mockArray;
Person *p1 = [[Person alloc] init];
Person *p2 = [[Person alloc] init];
Person *p3 = [[Person alloc] init];
Person *p4 = [[Person alloc] init];
Person *p5 = [[Person alloc] init];
p1.name = @“Alice"; p2.name = @“James”; p3.name = @“Oscar"; p4.name = @“Harri”; p5.name = @“John”;
persons = [NSArray arrayWithObjects:p1,p2,p3,p4,p5,nil];
OCMStub([self.myVC myArray]).andReturn(persons);
XCTAssertEqual([self.myVC numberOfPersons], 5);
}
myVCに次のようにやっていることは、私はこれを実行すると、テストケースが(0) is not equal to (5)
ことを訴えて失敗している、numberOfPersons
という名前のメソッドを持っています。これは、私がうまく配列を模倣することができなかったことを意味します。私も模倣された配列を印刷しようとするので、何もありません。
ここで間違っていることを教えてください。