私はシングルトンクラスを持っており、そのコードを単体テストできません。ユニットがobj-cでシングルトンをテストする方法は?
私のようなテストを持っている:
Db *db = [[Db alloc] initWithName:@"sample.db"];
[db createDb];
STAssertEquals([db existDb],YES,@"The db is not created!");
しかし、唯一の最初の仕事。秒が実行されるとき、私は常にinitWithNameメソッドから "null"を取得します。シングルトンサポートコードを削除すると、すべて正常に動作します。
私はテストをハックすることができますが(私は今はどういうことか分かりませんが)、これに対処する "poper"の方法が存在するのだろうかと思います。
シングルトンは次の場所にあります。http://code.google.com/p/chibiorm/source/browse/trunk/src/Db.m
テストの外でシングルトンをどのように使用しますか? シングルトンで[[Db alloc] init]を実行するのではなく、代わりに単一インスタンスを返すクラスメソッドを呼び出すべきであると私には思われます。 – pgb
それを使用するコードでは、はい...しかし、内部の動作をどのようにテストしますか? – mamcx