コードの単体テストケースを書き始めました。この記事を書いているときに、多くのテスト ケース クラスが共通のコードを使用しており、クラス間で共通の変数が必要であることに気付きました。
そこで、これらすべての値を保持するシングルトン クラスを作成することにしました。このシングルトン クラスは sendesting で継承されます。
ここで私の質問は、シングルトン テスト クラスを作成することは可能です。?
注:シングルトンを作成しましたが、まったく機能していません。
コードの単体テストケースを書き始めました。この記事を書いているときに、多くのテスト ケース クラスが共通のコードを使用しており、クラス間で共通の変数が必要であることに気付きました。
そこで、これらすべての値を保持するシングルトン クラスを作成することにしました。このシングルトン クラスは sendesting で継承されます。
ここで私の質問は、シングルトン テスト クラスを作成することは可能です。?
注:シングルトンを作成しましたが、まったく機能していません。
OCUnit は、他の xUnit フレームワークと同じアーキテクチャを共有しています。テスト ケースを実行するには、
必要な共通変数については、ivar として定義します。次に、で初期化し-setUp
ます。後で明示的なクリーンアップが必要な場合は、 で行い-tearDown
ます。
テスト間でオブジェクトを共有しないようにすることは非常に重要です。各テストは、それ自体で一貫した成功/失敗の動作を持つ必要があるためです。オブジェクトを共有すると、これが汚染され、テスト間の潜在的な依存関係が作成されます。シングルトンはオブジェクトを共有する一般的な方法であるため、通常、単体テスト戦略に反します。
Objective-C または Swift を使用した Xcode での単体テスト (特にテスト駆動開発) の段階的な例については、https: //qualitycoding.org/tdd-kata/ を参照してください。
はい、ここで、sentesting を継承するシングルトン クラスを作成できないことがわかりました。
NSObject を継承するシングルトンのみ作成できます。