ボタンクリックが発生したときに位置サービスが開始されることを確認するテストを作成しています。これには、携帯電話がロケーションサービスを利用できることを確認するための非常に簡単なifステートメントが必要です。ocmockを使用してクラスベースのメソッドで戻り値をスタブする方法
作業テストは、今この
- (void)testStartUpdatingLocationInvokedWhenLocationServicesAreEnabled
{
[[[self.locationManager stub] andReturnValue:[NSNumber numberWithBool:true]] locationServicesEnabled];
[[self.locationManager expect] startUpdatingLocation];
[self.sut buttonClickToFindLocation:nil];
[self.locationManager verify];
}
のように見える今、テスト実装では、すべての良い方法を除いて、この
- (IBAction)buttonClickToFindLocation:(id)sender
{
if ([self.locationManager locationServicesEnabled])
{
[self.locationManager startUpdatingLocation];
}
}
のように見えますdeprecated in iOS 4.0ました。だから、代わりにクラスメソッド[CLLocationManager locationServicesEnabled]を使う必要があります。
問題は、ocmockがこの機能をサポートしているかどうかを確認できない場合や、この問題を回避する方法が見つからない場合です。
このimport #importを追加する必要があります。 –