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

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

7
Android Studioユニットテスト:データ(入力)ファイルの読み取り
単体テストで、パスをハードコーディングせずに、(デスクトップ)ファイルシステムのjsonファイルからデータを読み取るにはどうすればよいですか? 静的文字列を作成するのではなく、ファイルからテスト入力(解析メソッド用)を読み取りたいのですが。 ファイルはユニットテストコードと同じ場所にありますが、必要に応じてプロジェクト内の別の場所に配置することもできます。Android Studioを使用しています。

11
ユニットテストを(並列ではなく)逐次実行
私が作成したWCFホスト管理エンジンを単体テストしようとしています。エンジンは基本的に、構成に基づいてオンザフライでServiceHostインスタンスを作成します。これにより、新しいサービスが追加されたり古いサービスが削除されたりするたびに、すべてのサービスを停止して再起動することなく、利用可能なサービスを動的に再構成できます。 ただし、ServiceHostの動作方法が原因で、このホスト管理エンジンの単体テストで問題が発生しました。特定のエンドポイントに対してServiceHostがすでに作成され、開かれ、まだ閉じられていない場合、同じエンドポイントの別のServiceHostを作成できず、例外が発生します。最近の単体テストプラットフォームはテストの実行を並列化しているため、このコードを単体テストする効果的な方法はありません。 私はxUnit.NETを使用しましたが、その拡張性のために、テストを逐次実行するように強制する方法を見つけることができると期待していました。しかし、私には運がありませんでした。SOの誰かが同様の問題に遭遇し、単体テストをシリアルに実行する方法を知っていることを願っています。 注:ServiceHostは、Microsoftによって作成されたWCFクラスです。私はその行動を変える能力がありません。各サービスエンドポイントを1回だけホストすることも適切な動作ですが、単体テストには特に役立ちません。

3
単一のテストごとにモック実装を変更する方法[Jestjs]
デフォルトのモックの動作を拡張し、次のテストの実行時に元の実装に戻すことで、単一のテストごとにモックされた依存関係の実装を変更したいと思います。 もっと簡単に言えば、これは私が達成しようとしていることです: モック依存関係 単一のテストでモック実装を変更/拡張する 次のテストが実行されると、元のモックに戻ります 現在使用していJest v21ます。 典型的なJestテストは次のようになります。 __mocks__/myModule.js const myMockedModule = jest.genMockFromModule('../myModule'); myMockedModule.a = jest.fn(() => true); myMockedModule.b = jest.fn(() => true); export default myMockedModule; __tests__/myTest.js import myMockedModule from '../myModule'; // Mock myModule jest.mock('../myModule'); beforeEach(() => { jest.clearAllMocks(); }); describe('MyTest', () => { it('should test with default mock', () …

7
動的な数のテストを伴うJUnitテスト
私たちのプロジェクトでは、たとえば、ディレクトリからすべてのファイルを取得し、その上でテストを実行する、いくつかのJUnitテストがあります。私がtestEveryFileInDirectoryメソッドを実装した場合、TestCaseこれは失敗または成功する可能性のある1つのテストのみとして表示されます。しかし、私は個々のファイルの結果に興味があります。たとえば、EclipseのグラフィカルなTestRunnerで、各ファイルが個別のテストとして表示されるようにTestCase/ を書くにはどうすればよいTestSuiteですか?(各ファイルの明示的なテスト方法をコーディングすることはオプションではありません。) 質問ParameterizedTestとEclipse Testrunnerの名前も比較してください。

3
コマンドラインを使用してJUnitクラスから単一のテストを実行する
コマンドラインとJavaのみを使用してJUnitクラスから単一のテストを実行できるようにするアプローチを見つけようとしています。 以下を使用して、クラスからすべてのテストセットを実行できます。 java -cp .... org.junit.runner.JUnitCore org.package.classname 私が本当にやりたいことは次のようなものです: java -cp .... org.junit.runner.JUnitCore org.package.classname.method または: java -cp .... org.junit.runner.JUnitCore org.package.classname#method JUnitアノテーションを使用してこれを行う方法があるかもしれないことに気づきましたが、私は自分のテストクラスのソースを手動で変更したくない(これを自動化しようとしている)。Mavenにこれを行う方法があるかもしれないこともわかりましたが、できればMavenに依存することは避けたいと思います。 だから私はこれを行う方法があるかどうか疑問に思っていますか? 私が探している重要なポイント: JUnitテストクラスから単一のテストを実行する機能 コマンドライン(JUnitを使用) テストソースを変更しない 追加のツールの使用を避ける

8
JUnitユニットテストのJVMパラメータを設定する方法
実行するために大量のヒープスペースを必要とするJUnitユニットテストがあります。つまり、1Gです。(十分なヒープスペースでのみ実行され、Win 7 64ビットマシンで内部的に実行されるWebstartアプリのメモリ集約的な機能をテストします。したがって、テストの再設計は実際的な提案ではありません。) Intellij IDEAで開発しているので、テストクラスのJVMパラメータ(例:-Xmx1024M)を設定できることはわかっています。ただし、これはテストクラス全体を実行する場合のみです。個別のテストを実行する場合は、そのテストメソッドの実行構成を再作成する必要があります。 また、これらはIDEとボックス固有です。そのため、ボックスを切り替える(複数のマシンで開発している)場合、または同僚の1人がテストを実行しようとした場合、これらの設定は転送されません。(また、EclipseやNetBeansなどの他のIDEが私の同僚によって使用されています。)FWIW、私たちはソースコード管理に水銀を使用しています。 ビルドサイクルではMavenを使用しているので、そのためのJVMパラメーターを指定する方法を知っています。 だから:-テストクラス全体と個々のテストメソッドに適用されるJVMパラメーターを指定する方法を探しています。そして-(リポジトリからコードを取得した)任意のマシンのIDE間でそれらの仕様を共有したいと思います。

2
.NETコアMVCコントローラーの単体テスト用のHttpContextをモックしますか?
私はユニットテストであるコントローラーに、httpリクエストのヘッダーの値を期待する関数があります。読み取り専用のため、HttpContextを初期化できません。 私のコントローラー関数は、「device-id」のhttpリクエストヘッダー値を期待しています [TestMethod] public void TestValuesController() { ValuesController controller = new ValuesController(); //not valid controller.HttpContext is readonly //controller.HttpContext = new DefaultHttpContext(); var result = controller.Get(); Assert.AreEqual(result.Count(), 2); } サードパーティのライブラリを使用せずにこれを行う簡単な方法はありますか?

30
テストが見つかりませんでした。インストールされているテストディスカバラーとエグゼキューター、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください
私は既存のソリューションを.Net 4.6.1にアップグレードする過程にあり、サーバービルド中にユニットテストを実行できませんでした。ローカルでこれらは期待どおりに実行され、フレームワークのバージョンを.Net 4.5.1に戻すと、サーバーで再び実行されます。 次のエラーが発生します。 テストが見つかりませんでした。インストールされているテストディスカバラーとエグゼキューター、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください。 より簡単な設定で問題を再現しました: 2つのテスト(1つは失敗、1つは合格)を含む単一のC#単体テストプロジェクトを使用したソリューション。 デフォルトテンプレート(TfvcTemplate.12.xaml)を使用したXAMLビルド定義 Visual Studio Enterprise 2015 Update 1がインストールされたTFS 2015 Update 1 XAMLビルドサーバー(6つの類似したサーバーがあり、すべて同じ結果を生成します)

4
Jestで1つのテストのみを実行します
非常に単純です。Jestで1つのテストだけを実行したいと思います。 私は置くit.onlyかdescribe.only、しかしそれはまだたくさんのテストを実行します。前回のコミット以降、すべてのテストを実行すると思いますが、onlyフラグを明示的に設定した状態でこの動作を行うべきではありませんか? この動作の原因と単一のテストの実行方法は何ですか?

20
DeploymentItem属性の問題
私は現在、C#.netで記述された「古い」システムを維持しており、古い機能をいくつか削除して、リファクタリングを行っています。ありがとう、前の男はいくつかの単体テスト(MSTests)を書いた。私はJUnitテストにはかなり慣れていますが、MSTestにはまだあまり対応していません。 テストメソッドにはDeploymentItem属性があり、テストされているビジネスロジックメソッドによって解析されるテキストファイルと、DeploymentItem展開する必要がある一連のTIFファイルを含むパスのみが指定されている2番目のテキストファイルを指定します。 [TestMethod()] [DeploymentItem(@"files\valid\valid_entries.txt")] [DeploymentItem(@"files\tif\")] public void ExistsTifTest() { ... } テストは以前は機能していましたが、今は\ files \ tifディレクトリに含まれるTIFファイルの名前を変更する必要がありました。ルールによると、TIFファイル名は特定のパターンと一致する必要があり、これもExistsTifTest()メソッドによってチェックされます。新しい要件に合わせるためにファイル名を変更する必要がありましたが、突然、TIFファイルは以前のように展開されなくなりました。 誰かがこれがなぜ起こるのか、何が原因であるのかについてのヒントを教えてくれますか?テストファイルのDeploymentItem属性に応じて、\ files \ valid \ディレクトリの "valid_entries.txt"の横に "my2ndTest.txt"と言う新しいテキストファイルを追加しても、同じことが起こります。ファイルが展開されませんか? testrunco​​nfigで展開パスを直接定義してイメージを展開しましたが、なぜこれらのことが発生するのか、またはたとえば、新しいファイル "my2ndTest.txt"が他のインスタンスで展開されないのはなぜですか?

4
構造を比較するときに、このアサートがフォーマット例外をスローするのはなぜですか?
2つのSystem.Drawing.Size構造が等しいことをアサートしようとしていますが、予期されるアサートエラーの代わりにフォーマット例外が発生します。 [TestMethod] public void AssertStructs() { var struct1 = new Size(0, 0); var struct2 = new Size(1, 1); //This throws a format exception, "System.FormatException: Input string was not in a correct format." Assert.AreEqual(struct1, struct2, "Failed. Expected {0}, actually it is {1}", struct1, struct2); //This assert fails properly, "Failed. Expected {Width=0, …

4
Eclipseで単体テストを簡単に作成する方法[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 5年前に閉鎖。 この質問を改善する メソッドを選択するだけで簡単に単体テストを作成したい。それを行う日食のツールはありますか?テンプレートをサポートする必要があります。ポジティブテストとネガティブテストを作成できるはずです。

10
iOS-Swiftの単体テストの実行時に「MyProject-Swift.h」ファイルが見つかりません
プロジェクトの単体テストをセットアップしようとしています。これは既存のObjective-Cアプリで、最近Swiftクラスを1つ追加しました。'MyProject-Swift.h'とSwift Bridgingファイル( 'MyProject'と 'MyProjectTest'の両方)をセットアップし、Objective-CとSwiftの両方のコードを使用して、アプリを問題なくビルドして実行できます。 しかし、今は新しいSwiftクラスでいくつかの単体テストを実行したいと思います。テストファイルをセットアップすると、次のようになります。 MySwiftClassTests.swift: import UIKit import XCTest import MyProject class MySwiftClassTests: XCTestCase { override func setUp() { super.setUp() // Put setup code here. This method is called before the invocation of each test method in the class. } override func tearDown() { // Put teardown code here. …

14
「アレンジ-アサート-アクト-アサート」にする必要がありますか?
Arrange-Act-Assertの古典的なテストパターンに関しては、Actの前にカウンターアサーションを追加することがよくあります。このようにして、通過するアサーションがアクションの結果として実際に通過していることがわかります。 これは、red-green-refactorの赤に似ていると思います。テスト中に赤いバーが表示された場合にのみ、緑色のバーは、違いをもたらすコードを記述したことを意味します。合格したテストを作成すると、どのコードでもそれを満たします。同様に、Arrange-Assert-Act-Assertに関しても、最初のアサーションが失敗した場合、どのActも最終的なAssertを通過したことになるので、実際にはActについて何も検証していません。 テストはこのパターンに従っていますか?なぜですか、なぜそうではありませんか? 明確化の更新:最初のアサーションは基本的に最終アサーションの反対です。それはアレンジが機能したという主張ではありません。Actがまだ機能していないという主張です。

2
データベース接続や組み込みelasticsearchサーバーの開始/停止など、Kotlinでユニットテストリソースを管理するにはどうすればよいですか?
Kotlin JUnitテストでは、組み込みサーバーを起動/停止して、テスト内で使用したいと考えています。 @BeforeテストクラスのメソッドでJUnitアノテーションを使用しようとしましたが、正常に機能しますが、テストケースを1回だけではなくすべて実行するため、適切な動作ではありません。 したがって@BeforeClass、メソッドでアノテーションを使用したいのですが、それをメソッドに追加すると、静的メソッド上にある必要があるというエラーが発生します。Kotlinには静的メソッドがないようです。そして、同じことが静的変数にも当てはまります。テストケースで使用するために、組み込みサーバーへの参照を保持する必要があるからです。 では、すべてのテストケースに対してこの埋め込みデータベースを一度だけ作成するにはどうすればよいですか? class MyTest { @Before fun setup() { // works in that it opens the database connection, but is wrong // since this is per test case instead of being shared for all } @BeforeClass fun setupClass() { // what I want to do instead, but …

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