0

NSMutableAttributedString を返すメソッドの「if」ステートメントの単体テストを書いていますが、エラーが発生しています。

IF ステートメントの実際のコード:

if (conditionIsTrue)
    {
        return [[NSMutableAttributedString alloc] initWithString:NSLocalizedStringWithDefaultValue(@"ABC", 
                                                                                                   @"ABCLibrary", 
                                                                                                   [NSBundle bundleWithName:@"ABCLibraryResources"],
                                                                                                   @"No ABC", 
                                                                                                   @"No ABC String") 
                                                      attributes:[self methodA]];
    }

単体テスト:

ControllerA *controller = [[ControllerA alloc] init];
id mockController = [OCMockObject partialMockForObject:controller];

NSMutableAttributedString *temp = [[NSMutableAttributedString alloc] initWithString:NSLocalizedStringWithDefaultValue(@"ABC", 
                                                                                                   @"ABCLibrary", 
                                                                                                   [NSBundle bundleWithName:@"ABCLibraryResources"],
                                                                                                   @"No ABC", 
                                                                                                   @"No ABC String") 
                                                      attributes:[self methodA]];

    [[mockController expect] temp];

エラー:

No known instance method for selector temp.

期待値を間違って設定していますか? NSMutableAttributedString の期待値を設定するにはどうすればよいですか?

4

1 に答える 1

1
[[mockController expect] temp] 

メソッド temp が呼び出されることを期待するように mockController に指示します。ここで、temp は単なる変数です。あなたが本当に欲しいのは

[[[mockController expect] andReturn:temp ] theMethodThatYouHaveTheIfStatementIn]
于 2013-06-18T19:40:14.957 に答える