OCMock を使用して iOS でモックを作成する速度に慣れています。私は、設定した期待に基づいて、失敗するはずのときに合格する単純なモック単体テストを作成しました。
コードは次のとおりです。
// Scientific Calculator class
@implementation ScientificCalculator
- (NSNumber *)sqrt:(NSNumber *)input {
return [NSNumber numberWithDouble:sqrt([input doubleValue])];
}
@end
// unit test
-(void) testScientificCalculatorSqrt {
NSNumber *input = [NSNumber numberWithDouble:4];
ScientificCalculator *scientificCalculator = [[ScientificCalculator alloc] init];
NSNumber *expected = [NSNumber numberWithDouble:2];
NSNumber *result = [scientificCalculator sqrt:input];
STAssertEquals([result doubleValue], [expected doubleValue], nil);
}
// unit test
-(void)testScientificCalculatorMocking {
// setup
NSNumber *input = [NSNumber numberWithDouble:44];
id scientificCalculator = [OCMockObject mockForClass:[ScientificCalculator class]];
// expect
NSNumber *expected = [NSNumber numberWithDouble:2];
[[[scientificCalculator expect] andReturn:expected] sqrt:input];
// test
NSNumber *result = [scientificCalculator sqrt:input];
// verify
STAssertEquals([result doubleValue], [expected doubleValue], nil);
[scientificCalculator verify];
}
testScientificCalculatorMocking
単体テストはへの44
入力として使用しますsqrt
。期待値を に設定しました2
。両方ともSTAssertEquals
成功[scientificCalculator verify]
します。
誰かが私がここで間違っていることを説明できますか?
ありがとう、
ダグ