【发布时间】:2016-03-31 03:21:51
【问题描述】:
我正在尝试在我的类上测试一个调用另一个类的类方法的方法。如果重要的话,我调用的第二个类包含在框架内。
我正在尝试测试的方法的简化版本。我只想通过捕获和验证对 [DataCapture trackEvent:] 的调用来验证 switch 语句是否符合我的预期。
- (void)beaconValue:(NSInteger)value
{
NSString* elementIdValue;
switch(value)
{
case 1:
elementIdValue = @"One";
break;
case 2:
elementIdValue = @"Two";
break;
case 3:
elementIdValue = @"Three";
break;
}
[DataCapture trackEvent:elementValueId];
}
这是我写的我希望工作的测试:
- (void)testCaptureData_1
{
id mockDataCapture = OCMClassMock([DataCapture class]);
OCMExpect([mockDataCapture trackEvent:@"One"]);
[[BeaconingService sharedBeaconingService] beaconValue:1];
OCMVerifyAll(mockDataCapture);
[mockDataCapture stopMocking];
}
我的验证总是告诉我没有调用预期的 trackEvent 方法,即使我将期望更改为 [OCMArg any]。我是在做明显错误的事情还是其他地方的问题(即项目设置错误?)
【问题讨论】:
标签: ios unit-testing xctest ocmock