2016-03-29 39 views
1

appleが提供するXCTestフレームワークを使用してテストケースを作成しています。私は私が私の機能testMyFunction内でクラスAをモックとしたい私は私のテストケースクラスからOCMockを使用せずにローカル変数をモックする方法

-(void)myFunction{ 
    A* a = [[A alloc] init]; 
} 

の下に、次のように関数の内部で割り当てられたローカル変数をモックとしたい状況を思い付きます。 OCMockを使用せずにこれを行う方法はありますか?

答えて

0

メソッドで使用するクラスをシステムunterテストに挿入できます。テストでは、別のクラスを使用できます。

1

インスタンスを最初に作成したら、通常の依存性注入手法を使用してインスタンスを挿入してください。

しかし、あなたはそれが必要になるまで、インスタンスが作成されないことを保証する必要がある場合、あなたはいくつかの選択肢があります。

  • @dasdomが言うように、クラスを注入します。その後、必要に応じてイニシャライザを呼び出します。
  • 工場として機能するブロックを注入します。それが必要なときに電話してください。
  • より複雑な初期化の場合は、工場を挿入します。私は通常、これをプロトコルに準拠させ、置換えを明確にします。
関連する問題