タグ付けされた質問 「unit-testing」

ユニットテストは、ソースコードの個々のユニットをテストして、それらが使用に適しているかどうかを判断する方法です。


1
`before()`と `beforeEach()`の違いは何ですか?
特に違いは何であるモカさんbefore()とはbeforeEach()?(同じもののための質問after()とafterEach()。) ブロックbefore()ごとに1回実行し、テスト(ブロック)ごとに1回実行すると仮定します。本当?describe()beforeEach()it() そして、いつ私はどちらか一方を使用することを選択しますか?


21
PHPUnit-構成ファイルを使用する場合、「テストは実行されません」
問題 コードの品質を向上させるために、平凡な最高のテストソリューションではなく、単体テストを使用してコードをテストする方法を学ぶことにしました。 私は、一般的なデータベース機能を実現できるパーソナルライブラリ用のcomposerを使用してPHPUnitをインストールすることにしました。最初はPHPUnitの構成ファイルがなく、次のようなコマンドを実行したとき。 $ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest これはターミナルコマンドであるため、.php拡張子を含めなかったことに注意してください。上記のGeneralStringFunctionsTestは、実際にはGeneralStringFunctionsTest.phpファイルです。 出力は私が期待したものです: 時間:31ミリ秒、メモリ:2.75Mb OK(1つのテスト、1つのアサーション) 次に、毎回手動でファイルを入力する代わりに、構成ファイルを使用してテストスイートを自動的にロードしようとしました。phpunit.xmlルートディレクトリにというファイルを作成し、ファイルに次のように入力しました。http://pastebin.com/0j0L4WBD: <?xml version = "1.0" encoding="UTF-8" ?> <phpunit> <testsuites> <testsuite name="Tests"> <directory>tests</directory> </testsuite> </testsuites> </phpunit> ここで、コマンドを実行すると、次のようになります。 phpunit 次の出力が得られます。 SebastianBergmannと寄稿者によるPHPUnit4.5.0。 /Users/muyiwa/Projects/DatabaseHelper/phpunit.xmlから読み取った構成 時間:16ミリ秒、メモリ:1.50Mb テストは実行されませんでした! 役立つ場合、私のディレクトリ構造は次のとおりです 。src-トップレベルディレクトリ(すべてのソースコードを含む) テスト-トップレベルディレクトリ(すべてのテストを含み、srcフォルダと同じ構造) ベンダー-Composerサードパーティファイル また、composer jsonとlockファイル、およびトップレベルのphpunitxmlファイルをファイルとして持っています。 私が試したこと ディレクトリをに変更phpunit.xmlするtests/GeneralStringFunctions ディレクトリをに変更phpunit.xmlする./tests phpunit.xmlファイルをtestsディレクトリに移動してから、ディレクトリをの./代わりに変更しますtests。 のディレクトリタグにサフィックス属性を追加しphpunit.xmlて、明示的なサフィックスとして「テスト」を指定します。

6
ASP.NETCoreでのIPrincipalのモック
単体テストを作成しているASP.NETMVCCoreアプリケーションがあります。アクションメソッドの1つは、一部の機能にユーザー名を使用します。 SettingsViewModel svm = _context.MySettings(User.Identity.Name); これは明らかにユニットテストで失敗します。私は周りを見回しましたが、すべての提案は.NET4.5からモックHttpContextまでです。それを行うためのより良い方法があると確信しています。IPrincipalを注入しようとしましたが、エラーが発生しました。そして私もこれを試しました(必死になって、私は推測します): public IActionResult Index(IPrincipal principal = null) { IPrincipal user = principal ?? User; SettingsViewModel svm = _context.MySettings(user.Identity.Name); return View(svm); } しかし、これもエラーをスローしました。ドキュメントにも何も見つかりませんでした...

17
単体テストの深さはどれくらいですか?
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 TDDについて私が見つけたのは、テストをセットアップするのに時間がかかることと、自然に怠惰であることです。私が最初に行うことは、コンストラクターがすべてのプロパティを設定したことをテストすることですが、これはやりすぎですか? 私の質問は、ユニットテストをどの程度の粒度で作成することですか。 ..そして、テストしすぎるケースはありますか?
88 unit-testing  tdd 

6
JUnit 4とTestNG-2013-2014の更新[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前に閉鎖。 この質問を改善する JUnit 4とTestNGは比較可能でした。2つのテストフレームワークの長所と短所は何ですか?

3
Moqフレームワークを使用してModelState.IsValidをモックする方法は?
次のModelState.IsValidようなEmployeeを作成するコントローラーアクションメソッドをチェック インしています。 [HttpPost] public virtual ActionResult Create(EmployeeForm employeeForm) { if (this.ModelState.IsValid) { IEmployee employee = this._uiFactoryInstance.Map(employeeForm); employee.Save(); } // Etc. } Moqフレームワークを使用した単体テストメソッドでそれを模擬したいと思います。私はそれを次のように模倣しようとしました: var modelState = new Mock<ModelStateDictionary>(); modelState.Setup(m => m.IsValid).Returns(true); しかし、これは私のユニットテストケースで例外をスローします。誰かがここで私を手伝ってくれる?

4
Githubでテストの合格/不合格をどのように表示しますか?
githubに、広範な単体テストを行うプロジェクトがあります(node.jsにmochaを使用)。 各ページでこれらのテストの合格/不合格を示して誇示したいと思います。Githubの他のプロジェクトがこれを行っていることに気づきました。 テストステータスを表示する方法に関するドキュメントが見つかりませんでした。 Githubにユニットテスト出力を表示させるにはどうすればよいですか? Githubはテストを実行しますか、それとも外部Webアプリに接続する必要がありますか? これを行うための無料のWebサービスはありますか(私のアプリはオープンソースです)?

2
MSTestを使用して非同期コードをテストするにはどうすればよいですか
私はいくつかの非常に単純な非同期コードを書いています。ファイルをオフスレッドで保存するだけです。 Microsoft Visual Studio Team System2008のMSTest単体テストフレームワークを使用してこのコードをテストしたいと思います。 どうすればよいですか? メソッドが戻るまで、テストメソッドを単純にブロックしたいと思います。これを行う方法はいくつか想像できますが、これに関するベストプラクティスやヘルパークラスがないことに驚いています。 Silverlightはよく見かけますが、一般的なものはありません。

4
mockitoコールバックと引数値の取得
Mockitoに関数の引数値をキャプチャさせる運がありません!私は検索エンジンのインデックスをモックしていて、インデックスを作成する代わりに、ハッシュを使用しています。 // Fake index for solr Hashmap<Integer,Document> fakeIndex; // Add a document 666 to the fakeIndex SolrIndexReader reader = Mockito.mock(SolrIndexReader.class); // Give the reader access to the fake index Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666)) クエリの結果(つまり、クエリが返すドキュメント)をテストしているため、任意の引数を使用することはできません。同様に、ドキュメントごとに特定の値を指定したり、行を設定したりしたくありません。 Mockito.when(reader.document(0)).thenReturn(document(fakeIndex(0)) Mockito.when(reader.document(1)).thenReturn(document(fakeIndex(1)) .... Mockito.when(reader.document(n)).thenReturn(document(fakeIndex(n)) 「Mockitoの使用」ページの「コールバック」セクションを見ました。残念ながら、それはJavaではなく、Javaで機能するように自分で解釈することはできませんでした。 編集(説明のため):Mockitoに引数Xをキャプチャさせて、それを関数に渡すにはどうすればよいですか?Xの正確な値(またはref)を関数に渡してほしい。 すべてのケースを列挙したくはありません。また、クエリごとに異なる結果をテストしているため、任意の引数は機能しません。 Mockitoページには val mockedList = mock[List[String]] mockedList.get(anyInt) answers { i => "The parameter …

6
MSTestユニットテストで「例外が発生しなかった」ことを確認するにはどうすればよいですか?
「void」を返すこの1つのメソッドの単体テストを書いています。例外が発生しない場合にテストに合格するケースを1つ挙げたいと思います。C#でそれを書くにはどうすればよいですか? Assert.IsTrue(????) (私の推測では、これは私がチェックする方法ですが、「???」には何が入りますか) 私の質問が十分に明確であることを願っています。


5
Angular2でEventEmitterをテストする方法はありますか?
EventEmitterを使用するコンポーネントがあり、ページ上の誰かがクリックされたときにEventEmitterが使用されます。単体テスト中にEventEmitterを監視し、TestComponentBuilderを使用してEventEmitter.next()メソッドをトリガーする要素をクリックし、何が送信されたかを確認する方法はありますか?


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