回答:
スタブメソッドは、単純だが有効な(必ずしも正しいとは限りませんが)結果を返すメソッドです。
これらは通常、インフラストラクチャを構築するときに作成され、現在必要なすべての方法に時間を費やす必要はありません。代わりにスタブを作成して、すべてがコンパイルされ、IDEのオートコンプリートが使用する予定のメソッドを認識できるようにします。
スタブが使用されるもう1つの場所は、テスト時のモックです。固定の結果を返す依存性注入によって、通常の依存関係の代わりにスタブメソッドを提供し、コードがそれらで正しいことを確認します。これにより、テストをテストしようとしているコードに分離し、これらのテストを実行するためだけにデータベースを起動する必要がなくなります。
おそらく、これは具体的な例で最もよく答えられるでしょう。デスクトップアプリケーションを作成している場合を考えてみましょう。あなたは、という名前の関数を持っていることにしましたcreateMenubar
、createToolbar
そしてcreateMain
アプリケーションのコンストラクタはきちんと整頓されるようになっています。
メインコードは次のようになります(この例はpythonにあります)。
class ExampleApp():
def __init__(self):
self.createMenubar()
self.createToolbar()
self.createMain()
すべてが機能するまで、メイン関数は失敗します。開発中にアプリをテストするにはどうすればよいですか?たとえば、で作業を開始する場合createMenubar
、GUIのツールバーまたはメインエリアを実装していないため、メニューバーを作成した後に初期化は失敗します。
スタブが来る場所です。あなたが名前の関数を作成することができますcreateToolbar
し、createMain
その実際にそれらを実装することなく、アプリのコンストラクタ(これらの関数が存在する、すなわち、ということ)の要件を満たします。これらの関数はスタブです:
def createToolbar():
pass
def createMain():
pass
これらのスタブを配置すると、ツールバーの詳細やプログラムの主要部分を気にすることなく、メインプログラムとメニューバーの実装を開始できます。最終的には、ツールバーに移動し、スタブを実際の機能に置き換えます。そして最後に、スタブを削除しcreateMain
て、実際の実装を行います。
スタブは必ずしも何もする必要がないことに注意してください。これらのスタブは、たとえば、アプリのコンストラクターがレイアウトできる空のコンテナーウィジェットを作成できます。ポイントは、開発中に他のコードを実行できるようにするだけのダミー関数またはダミーオブジェクトを作成することです。時間が経つにつれて、アプリケーションが完了するまでスタブを1つずつ交換します。