タグ付けされた質問 「mocking」

モックと偽造は、コードまたはコンポーネントを分離して、実際に他のコンポーネントやアプリケーションの依存関係を実際に利用せずに、テスト可能なコードのユニットに対してのみユニットテストを実行できるようにする方法です。モックは、モックを検査してテストの結果を主張できるという点で偽造とは異なります。

5
Mockitoを使用する場合のモッキングとスパイの違いは何ですか?
Mockitoスパイの使用のユースケースは何ですか? callRealMethodを使用すると、すべてのスパイのユースケースをモックで処理できるように思えます。 私が見ることができる1つの違いは、ほとんどのメソッド呼び出しを実際のものにしたい場合、モック対スパイを使用するためにコードのいくつかの行を節約することです。それですか、それとも全体像が欠けていますか?
137 java  testing  mocking  mockito 

16
単体テストのランダムデータ?
私の同僚には、フィールドにランダムデータを入力するオブジェクトの単体テストを作成しています。彼の理由は、通常のテストでは静的な値が1つしか使用されないのに対して、さまざまな値をテストするため、テストの範囲が広がるためです。 私はこれに対していくつかの異なる理由を彼に与えました、主なものは: ランダムな値は、テストが真に再現可能ではないことを意味します(つまり、テストがランダムに失敗する可能性がある場合、ビルドサーバーで失敗し、ビルドを中断することができます) ランダムな値でテストが失敗した場合は、a)オブジェクトを修正し、b)毎回その値をテストするように強制する必要があります。これにより、機能することがわかりますが、ランダムであるため、値が何であるかはわかりません。 別の同僚が追加しました: 例外をテストしている場合、ランダムな値では、テストが予期した状態になることは保証されません ランダムデータは、ユニットテストではなく、システムのフラッシュアウトと負荷テストに使用されます 他の誰かが私に彼にこれをやめるように彼に与えることができる追加の理由を追加できますか? (または、これは単体テストを書くための許容できる方法であり、私と私の同僚は間違っていますか?)

8
Mockitoを使用してクラスのメンバー変数をモックする
私は特に開発とユニットテストの初心者です。私の要件はかなり単純だと思いますが、私はこれについて他の考えを知りたいと思っています。 私のように2つのクラスがあるとしましょう- public class First { Second second ; public First(){ second = new Second(); } public String doSecond(){ return second.doSecond(); } } class Second { public String doSecond(){ return "Do Something"; } } First.doSecond()メソッドをテストするための単体テストを書いているとしましょう。しかし、私はSecond.doSecond()そのようにクラスをモックしたいとします。私はこれを行うためにMockitoを使用しています。 public void testFirst(){ Second sec = mock(Second.class); when(sec.doSecond()).thenReturn("Stubbed Second"); First first = new First(); assertEquals("Stubbed …
136 java  mocking  mockito 

3
入力パラメーターを指定しないMoqモックメソッド
Moqを使用したテストにいくつかのコードがあります。 public class Invoice { ... public bool IsInFinancialYear(FinancialYearLookup financialYearLookup) { return InvoiceDate >= financialYearLookup.StartDate && InvoiceDate <= financialYearLookup.EndDate; } ... } だからユニットテストで私はこのメソッドをモックして真を返すようにしています mockInvoice.Setup(x => x.IsInFinancialYear()).Returns(true); とにかくこの行を書くので、への入力を指定する必要はありませんIsInFinancialYear。すなわち。コードに入力パラメータがないので、渡されたものは何でもtrueを返しますか?
133 c#  mocking  moq 

6
Mockを使用して関数/メソッドが呼び出されなかったことを表明する
Mockライブラリを使用してアプリケーションをテストしていますが、一部の関数が呼び出されなかったと主張します。モックドキュメントはやなどのメソッドについて話しますがmock.assert_called_with、モックが呼び出されmock.assert_called_once_withなかったことmock.assert_not_calledを確認するためのようなものや何かに関連するものは見つかりませんでした。 私は次のようなもので行くことができますが、それはクールでもPythonicでもないようです: def test_something: # some actions with patch('something') as my_var: try: # args are not important. func should never be called in this test my_var.assert_called_with(some, args) except AssertionError: pass # this error being raised means it's ok # other stuff これを達成する方法はありますか?


7
RequireJSで単体テストの依存関係をモックするにはどうすればよいですか?
テストしたいAMDモジュールがありますが、実際の依存関係をロードするのではなく、その依存関係をモックアウトします。requirejsを使用しており、モジュールのコードは次のようになります。 define(['hurp', 'durp'], function(Hurp, Durp) { return { foo: function () { console.log(Hurp.beans) }, bar: function () { console.log(Durp.beans) } } } どのように私はモックできるhurpとdurp私は効果的にユニットテストできるように?

5
MockitoとJMockitの比較-なぜMockitoはJMockitよりも優れているのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私のプロジェクトで使用するモッキングフレームワークを調査していて、それをJMockitとMockitoに絞り込んでいます。 Stackoverflow でMockitoが「Javaに最適なモックフレームワーク」に選ばれたことに気づきました。JMockitの「モッキングツール比較マトリックス」の 機能を比較すると、JMockitには複数の異なる機能があるようです。 誰もが何に関する具体的な情報(ない意見)持っていますMockitoを用いて達成することができない行うことができますJMockitその逆と副の?

2
Mockitoマッチャーはどのように機能しますか?
Mockito引数マッチャ(などはany、argThat、eq、same、及びArgumentCaptor.capture())Hamcrestのマッチャから非常に動作が異なります。 Mockitoマッチャーは、マッチャーが使用された後に長時間実行されるコードであっても、InvalidUseOfMatchersExceptionを頻繁に引き起こします。 Mockitoマッチャーは、特定のメソッドの1つの引数がマッチャーを使用する場合、すべての引数に対してMockitoマッチャーの使用のみを要求するなど、奇妙なルールに守られます。 Mockitoマッチャーは、Answersをオーバーライドしたり、使用したりすると、NullPointerExceptionを引き起こす可能性があります(Integer) any()。 特定の方法でMockitoマッチャーを使用してコードをリファクタリングすると、例外や予期しない動作が発生し、完全に失敗する可能性があります。 Mockitoマッチャーがこのように設計されている理由と、それらの実装方法を教えてください。
122 java  mocking  mockito 

1
関数をモックして例外を発生させ、exceptブロックをテストする
foo別の関数(bar)を呼び出す関数()があります。呼び出しでbar()が発生したHttpError場合、ステータスコードが404の場合は特別に処理し、それ以外の場合は再発生させます。 このfoo関数の周りにいくつかの単体テストを書いて、への呼び出しを模倣しようとしていますbar()。残念ながら、ブロックでbar()キャッチされた例外を発生させるためにモックされた呼び出しを取得できませんexcept。 これが私の問題を説明する私のコードです: import unittest import mock from apiclient.errors import HttpError class FooTests(unittest.TestCase): @mock.patch('my_tests.bar') def test_foo_shouldReturnResultOfBar_whenBarSucceeds(self, barMock): barMock.return_value = True result = foo() self.assertTrue(result) # passes @mock.patch('my_tests.bar') def test_foo_shouldReturnNone_whenBarRaiseHttpError404(self, barMock): barMock.side_effect = HttpError(mock.Mock(return_value={'status': 404}), 'not found') result = foo() self.assertIsNone(result) # fails, test raises HttpError @mock.patch('my_tests.bar') def test_foo_shouldRaiseHttpError_whenBarRaiseHttpErrorNot404(self, barMock): barMock.side_effect …

5
phpunitモックメソッドの引数が異なる複数の呼び出し
異なる入力引数に対して異なるmock-expectを定義する方法はありますか?たとえば、DBというデータベースレイヤークラスがあります。このクラスには "Query(string $ query)"というメソッドがあり、そのメソッドは入力時にSQLクエリ文字列を受け取ります。このクラス(DB)のモックを作成し、入力クエリ文字列に依存する異なるクエリメソッド呼び出しに異なる戻り値を設定できますか?
117 php  mocking  phpunit 

2
クラスのモック:Mock()またはpatch()?
私はPythonでモックを使用しており、これらの2つのアプローチのどちらが優れているのか疑問に思っていました(読んで:よりpythonic)。 方法1:模擬オブジェクトを作成して使用するだけです。コードは次のようになります。 def test_one (self): mock = Mock() mock.method.return_value = True self.sut.something(mock) # This should called mock.method and checks the result. self.assertTrue(mock.method.called) 方法2:patchを使用してモックを作成します。コードは次のようになります。 @patch("MyClass") def test_two (self, mock): instance = mock.return_value instance.method.return_value = True self.sut.something(instance) # This should called mock.method and checks the result. self.assertTrue(instance.method.called) どちらの方法も同じことを行います。違いがわかりません。 誰かが私を啓発できますか?


7
AngularJSサービスにモックを挿入する
AngularJSサービスを作成しており、それを単体テストしたいと思います。 angular.module('myServiceProvider', ['fooServiceProvider', 'barServiceProvider']). factory('myService', function ($http, fooService, barService) { this.something = function() { // Do something with the injected services }; return this; }); 私のapp.jsファイルにはこれらが登録されています: angular .module('myApp', ['fooServiceProvider','barServiceProvider','myServiceProvider'] ) DIが機能していることをテストできます。 describe("Using the DI framework", function() { beforeEach(module('fooServiceProvider')); beforeEach(module('barServiceProvider')); beforeEach(module('myServiceProvder')); var service; beforeEach(inject(function(fooService, barService, myService) { service=myService; })); it("can be …

2
mockito when()呼び出しはどのように機能しますか?
次のMockitoステートメントがあるとします。 when(mock.method()).thenReturn(someValue); mock.method()ステートメントが戻り値をwhen()に渡す場合、Mockitoはモックのプロキシ処理をどのように作成しますか?私はこれがいくつかのCGLibのものを使用することを想像しますが、これが技術的にどのように行われるかを知りたいと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.