問題タブ [unit-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
7553 参照

c# - タイマーベースのアプリケーションの単体テスト?

私は現在、k秒ごとにn回アクションを実行する、シンプルなタイマーベースのミニアプリをC#で作成しています。
私はテスト駆動開発スタイルを採用しようとしているので、私の目標はアプリのすべての部分を単体テストすることです。

だから、私の質問は:タイマーベースのクラスをユニットテストする良い方法はありますか?

問題は、私が見ているように、テストの実行に不快な時間がかかるという大きなリスクがあることです。これは、テストが目的のアクションが発生するまで非常に長く待たなければならないためです。
特に、フレームワークで許可されている最小の時間分解能(1ミリ秒?)を使用する代わりに、現実的なデータ(秒)が必要な場合。
アクションにモックオブジェクトを使用して、アクションが呼び出された回数を登録しているので、アクションは実質的に時間がかかりません。

0 投票する
27 に答える
187730 参照

multithreading - マルチスレッドコードの単体テストはどのようにすればよいですか?

これまでのところ、マルチスレッド コードをテストするという悪夢を避けてきました。正常に実行するためにスレッドに依存するコードのテストについて、人々はどのように取り組んでいるのか、または 2 つのスレッドが特定の方法で相互作用する場合にのみ現れるこの種の問題のテストについて、人々はどのように取り組んでいるのかを尋ねたいと思います。

これは、今日のプログラマーにとって非常に重要な問題のように思えます。

0 投票する
16 に答える
6706 参照

sql - SQLストアドプロシージャの単体テストで成功した人はいますか?

C#/C++ コード用に作成した単体テストが本当に効果があることがわかりました。しかし、ストアド プロシージャにはまだ数千行のビジネス ロジックがあり、実際にテストされるのは、製品が多数のユーザーに公開されたときだけです。

さらに悪いことに、SP 間で一時テーブルを渡すときにパフォーマンスが低下するため、これらのストアド プロシージャの一部が非常に長くなることがあります。これにより、コードを単純化するためのリファクタリングが妨げられました。

いくつかの重要なストアド プロシージャを中心に単体テストを作成する試みを何度か行いました (主にパフォーマンスのテスト) が、これらのテスト用にテスト データを設定するのは非常に困難であることがわかりました。たとえば、テスト データベースをコピーすることになります。これに加えて、テストは変更に非常に敏感になり、ストアド プロシージャへの最小の変更でさえも敏感になります。またはテーブルは、テストに大量の変更を必要とします。そのため、これらのデータベース テストが断続的に失敗したために多くのビルドが機能しなくなった後、ビルド プロセスから除外する必要がありました。

私の質問の主な部分は、ストアド プロシージャの単体テストを正常に作成したことがありますか?

私の質問の 2 番目の部分は、単体テストが linq で簡単になるかどうかです。

テスト データのテーブルを設定するのではなく、単純にテスト オブジェクトのコレクションを作成し、「linq to objects」の状況で linq コードをテストできるのではないかと考えていました。(私はlinqにまったく慣れていないので、これがまったく機能するかどうかわかりません)

0 投票する
5 に答える
1153 参照

unit-testing - 単体テスト用のテストケースをキャプチャする際の厳密さ

疑似言語で定義された単純な関数があるとしましょう。

ソートされていない数値のリストと、昇順または降順のソート順を指定するブール値を渡します。その見返りに、ソートされた数値のリストを取得します。

私の経験では、境界条件を捉えるのが得意な人もいます。問題は、「テストケースのキャプチャが「完了」したことをどのようにして知るか」です。

今すぐケースのリストを開始できます。賢い人の中には、間違いなく、これまでのどのケースでもカバーされていない「もう1つの」ケースを考える人もいます。

0 投票する
4 に答える
1462 参照

visual-studio - Visual Studioのさまざまなフォルダー/プロジェクトで(単体)テストを個別に実行するにはどうすればよいですか?

VisualStudioのフォルダー構造

VisualStudioで単体テストと統合テストのテスト実行を簡単に分離する方法についてアドバイスが必要です。多くの場合、または常に、上の図に示すようにソリューションを構成します。単体テストと統合テストの別々のプロジェクトです。単体テストは非常に頻繁に実行されますが、統合テストは、コンテキストが正しく調整されている場合に自然に実行されます。

私の目標は、キーボードショートカットを使用するときに実行するテスト(またはテストフォルダー)をなんとかして構成できるようにすることです。テストは、グラフィカルなテストランナー(ReSharpers)によって実行されることが望ましいです。だから例えば

  • Alt + 1は、プロジェクトBLL.Testでテストを実行します。
  • Alt + 2は、プロジェクトDAL.Testsでテストを実行します。
  • Alt + 3はそれらの両方を実行します(つまり、[Tests]フォルダー内のすべてのテストと
  • Alt + 4は、フォルダー[Tests.Integration]でテストを実行します。

TestDriven.netには、選択したフォルダーまたはプロジェクトを右クリックして[テストの実行]を選択することにより、テストのみを実行するオプションがあります。これを行うことができますが、キーボードコマンドを介してグラフィカルなテストランナーを使用すると素晴らしいでしょう。

TestDriven.netテスト実行出力

現在、VS2008、ReSharper 4、nUnitを使用しています。ただし、一般的なセットアップに関するアドバイスももちろんありがたいです。

0 投票する
9 に答える
44569 参照

unit-testing - 開発者テスト vs. QA チーム テスト - 適切な作業区分とは?

より多くの開発者テストを提唱しようとしているときに、「それは QA の仕事ではないのか?」という議論を見つけました。多く使われています。私の考えでは、QA チームにすべてのテストの責任を与えることは意味がありませんが、同時にスポルスキーや他の人々は、時速 30 ドルのテスターができることを時速 100 ドルの開発者に任せるべきではないと言っています。 . 専任の QA チームを擁する企業の他のメンバーはどのような経験をしていますか? 仕事の分担はどこに描くべきですか?

明確化: QA は検証および検証チームとしての意味でした。開発者は検証 (顧客中心のテスト) を行うべきではありませんが、検証 (機能テスト) の分割ポイントはどこにありますか?

0 投票する
10 に答える
14946 参照

unit-testing - ゲームの自動テスト

質問

ゲームに自動テストを追加するにはどうすればよいでしょうか?

ゲーム エンジンの多くの機能 (ネットワーク、オブジェクト作成、メモリ管理など) を単体テストできると思いますが、実際のゲーム自体のテストを自動化することは可能ですか?

私はゲームプレイの要素について話しているわけではありません (マップ X で Protoss が Zerg を打ち負かすなど)、ゲームとエンジンの間の相互作用について話しているのです。

序章

ゲーム開発において、エンジンはゲームの単なるプラットフォームです。ゲーム エンジンは OS と考えることができ、ゲームは OS が実行するソフトウェアと考えることができます。ゲームは、スクリプトのコレクションまたはゲーム エンジン内の実際のサブルーチンである可能性があります。

考えられる答え

私の考えはこれです:

決定論的なエンジンが必要です。これは、1 組の入力が与えられた場合、出力がまったく同じになることを意味します。これには、同じ入力でシードされる乱数発生器が含まれます。

次に、アバター/ユーザーが操作できるいくつかのオブジェクトを含むベアボーン レベルを作成します。小さく始めて、より多くの相互作用が開発されるにつれて、オブジェクトをレベルに追加します。

パスをたどる (パスファインディングをテストする) スクリプトを作成し、さまざまなオブジェクトと対話します (結果または期待される動作を保存します)。このスクリプトが自動テストになります。一定の時間 (たとえば 1 週間) が経過したら、エンジンの単体テストと共にスクリプトを実行します。

0 投票する
2 に答える
932 参照

unit-testing - NUnitLiteを使用して成功した人はいますか?

私は最近CompactFrameworkの作業を開始しましたが、VS 2008よりもユニットテストに関する推奨事項があるかどうか疑問に思いました。MSTestは問題ありませんが、テストのデバッグは悪夢であり、テストランナーは非常に遅いです。

codeplex上のNUnitLiteはオプションであることがわかりますが、あまりアクティブに見えません。これはNUnit3.0のロードマップにも含まれていますが、いつ公開されるかは誰にもわかりません。誰かがそれで成功しましたか?

0 投票する
7 に答える
6276 参照

unit-testing - 単体テストの開始

単体テストとは、大まかに言えば、テスト コードを使用してコードの一部を分離してテストすることです。すぐに思いつく利点は次のとおりです。

  • テストの実行が自動化および反復可能になる
  • GUI を介したポイント アンド クリック テストよりもはるかに詳細なレベルでテストできます。

リトミス

私の質問は、ツールに関する現在の「ベスト プラクティス」とは何か、および日常のコーディングの一部としてユニット テストをいつ、どこで使用するかということです。

言語にとらわれず、すべてのベースをカバーするようにしましょう。

0 投票する
2 に答える
3644 参照

windows - カーネルドライバーの単体テスト

Windowsカーネル環境用のテストフレームワークを探しています。これまでのところ、cfixを見つけました。誰かがそれを試しましたか?代替案はありますか?