ホームページ >Java >&#&チュートリアル >Mockitoを使用してクラス内のメソッドを部分的にモックするにはどうすればよいですか?
Mockito を使用してクラス内の特定のメソッドをモックする方法
ソフトウェア テストでは、モックを使用すると依存関係やオブジェクトの動作をシミュレートできます。直接インスタンス化したくないクラス。 Mockito は、メソッドをモックし、メソッドとの対話を検証できる Java モック フレームワークです。
具体的には、クラスの特定のメソッドをモックし、他のメソッドはそのままにしておくというシナリオに遭遇することがあります。このアプローチは部分モッキングとして知られています。 Mockito を使用してこれを実現する方法は次のとおりです。
// Mock the Stock class with partial mocking Stock stock = mock(Stock.class); // Mock specific methods when(stock.getPrice()).thenReturn(100.00); when(stock.getQuantity()).thenReturn(200); // Leave 'getValue()' unmocked // It will execute the actual Stock.getValue() calculation when(stock.getValue()).thenCallRealMethod();
この方法では、getPrice() メソッドと getQuantity() メソッドのみがモックされ、getValue() は元のコードを実行します。
さらに、CALLS_REAL_METHODS 引数を次のように使用できます。 Mockito.mock():
Stock MOCK_STOCK = Mockito.mock(Stock.class, CALLS_REAL_METHODS);
これにより、スタブ化されていない呼び出しが実際の実装に委任されます。
ただし、この例では getPrice() と getQuantity() のみをモックしていることに注意することが重要です。 getValue() の実装は実際の戻り値に依存するため、正しく動作しません。代わりに、モックを完全に避けることを検討してください:
// Without mocks Stock stock = new Stock(100.00, 200); double value = stock.getValue();
以上がMockitoを使用してクラス内のメソッドを部分的にモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。