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

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

9
MSTestで複数のパラメーターを使用してテストメソッドを実行する方法
NUnitには、次のような値と呼ばれる機能があります。 [Test] public void MyTest( [Values(1,2,3)] int x, [Values("A","B")] string s) { // ... } つまり、テストメソッドは6回実行されます。 MyTest(1, "A") MyTest(1, "B") MyTest(2, "A") MyTest(2, "B") MyTest(3, "A") MyTest(3, "B") 現在、MSTestを使用していますが、複数のパラメーターを使用して同じテストを実行できるように、これに相当するものはありますか? [TestMethod] public void Mytest() { // ... }

17
jasmine:非同期コールバックは、jasmine.DEFAULT_TIMEOUT_INTERVALで指定されたタイムアウト時間内に呼び出されませんでした
私はという角度のサービスを持っていますrequestNotificationChannel: app.factory("requestNotificationChannel", function($rootScope) { var _DELETE_MESSAGE_ = "_DELETE_MESSAGE_"; function deleteMessage(id, index) { $rootScope.$broadcast(_DELETE_MESSAGE_, { id: id, index: index }); }; return { deleteMessage: deleteMessage }; }); 私はジャスミンを使用してこのサービスを単体テストしようとしています: "use strict"; describe("Request Notification Channel", function() { var requestNotificationChannel, rootScope, scope; beforeEach(function(_requestNotificationChannel_) { module("messageAppModule"); inject(function($injector, _requestNotificationChannel_) { rootScope = $injector.get("$rootScope"); scope = rootScope.$new(); …

5
Mockito:InvalidUseOfMatchersException
DNSチェックを実行するコマンドラインツールがあります。DNSチェックが成功した場合、コマンドはさらにタスクを続行します。Mockitoを使用して、このための単体テストを作成しようとしています。これが私のコードです: public class Command() { // .... void runCommand() { // .. dnsCheck(hostname, new InetAddressFactory()); // .. // do other stuff after dnsCheck } void dnsCheck(String hostname, InetAddressFactory factory) { // calls to verify hostname } } InetAddressFactoryを使用して、InetAddressクラスの静的実装をモックしています。これがファクトリーのコードです: public class InetAddressFactory { public InetAddress getByName(String host) throws UnknownHostException { return …

1
Javaは、Mockitoでvoidメソッド呼び出しをn回検証します
DAO内で(void)メソッドが呼び出されていることを確認しようとしています。その時点までの結果のリストを送信し、リストをリセットして続行するコミットポイントを使用しています。リストに4つの項目があり、コミットポイントが1であるとします。「send」メソッドが4回呼び出されることを期待します。次のように記述することで、メソッドが1回呼び出されることを確認できます Mockito.verify(mock).send() 合格ですが、呼び出された回数を確認したいと思います。と思う Mockito.verify(mock.send(), times(4)) 十分ですが、検証するためのパラメーターが正しくないと表示されています。 ちなみに、変更Mockito.verify(mock).send()し Mockito.verify(mock.send())たりMockito.verify((mock).send())同じエラーが出たりした 場合 。これについての考え?

12
JUnitを使用して環境変数に依存するコードをテストする方法は?
環境変数を使用するJavaコードがあり、コードの動作はこの変数の値に依存します。このコードを環境変数のさまざまな値でテストしたいと思います。JUnitでこれを行うにはどうすればよいですか? Javaで環境変数を設定する一般的な方法をいくつか見てきましたが、特にテストが互いに干渉してはならないことを考えると、Javaのユニットテストの側面に関心があります。

2
CMake:単体テストを含むプロジェクト構造
プロダクションソース(srcサブフォルダー内)とテスト(サブフォルダー内)を含めるようにプロジェクトを構成しようとしていtestます。これを構築するためにCMakeを使用しています。最小限の例として、以下のファイルを用意しています。 CMakeLists.txt: cmake_minimum_required (VERSION 2.8) project (TEST) add_subdirectory (src) add_subdirectory (test) src / CMakeLists.txt: add_executable (demo main.cpp sqr.cpp) src / sqr.h #ifndef SQR_H #define SQR_H double sqr(double); #endif // SQR_H src / sqr.cpp #include "sqr.h" double sqr(double x) { return x*x; } src / main.cpp-sqrを使用しますが、問題にはなりません test / CMakeLists.txt: find_package(Boost COMPONENTS …

11
ファイルシステムに依存するコードの単体テスト
私は、ZIPファイルを指定した場合に必要なコンポーネントを作成しています。 ファイルを解凍します。 解凍したファイルから特定のdllを見つけます。 リフレクションを介してそのdllをロードし、その上でメソッドを呼び出します。 このコンポーネントを単体テストしたいのですが。 ファイルシステムを直接処理するコードを作成したくなります。 void DoIt() { Zip.Unzip(theZipFile, "C:\\foo\\Unzipped"); System.IO.File myDll = File.Open("C:\\foo\\Unzipped\\SuperSecret.bar"); myDll.InvokeSomeSpecialMethod(); } しかし、「ファイルシステム、データベース、ネットワークなどに依存する単体テストを記述しないでください」とよく言われます。 これをユニットテストに適した方法で書くとすると、次のようになると思います。 void DoIt(IZipper zipper, IFileSystem fileSystem, IDllRunner runner) { string path = zipper.Unzip(theZipFile); IFakeFile file = fileSystem.Open(path); runner.Run(file); } わーい!今ではテスト可能です。DoItメソッドにテストダブル(モック)をフィードできます。しかし、どのようなコストで?これをテスト可能にするためだけに、3つの新しいインターフェースを定義する必要がありました。そして、正確には何をテストしていますか?私のDoIt関数がその依存関係と適切に相互作用することをテストしています。zipファイルが適切に解凍されたことなどはテストしません。 もう機能をテストしているような気がしません。クラスの相互作用をテストしているような感じです。 私の質問はこれです:ファイルシステムに依存する何かを単体テストする適切な方法は何ですか? 編集私は.NETを使用していますが、この概念はJavaまたはネイティブコードにも適用できます。

5
Guiceでのバインディングのオーバーライド
私はGuiceで遊んだところですが、考えられるユースケースは、テストで単一のバインディングをオーバーライドしたいというものです。すべてが正しく設定されていることを確認し、重複を避けるために、残りの本番レベルのバインディングを使用したいと思います。 次のモジュールがあると想像してください public class ProductionModule implements Module { public void configure(Binder binder) { binder.bind(InterfaceA.class).to(ConcreteA.class); binder.bind(InterfaceB.class).to(ConcreteB.class); binder.bind(InterfaceC.class).to(ConcreteC.class); } } そして、私のテストでは、InterfaceAとInterfaceBをそのままにして、InterfaceCをオーバーライドしたいだけなので、次のようにします。 Module testModule = new Module() { public void configure(Binder binder) { binder.bind(InterfaceC.class).to(MockC.class); } }; Guice.createInjector(new ProductionModule(), testModule); 私も次のことを試しましたが、うまくいきませんでした: Module testModule = new ProductionModule() { public void configure(Binder binder) { super.configure(binder); binder.bind(InterfaceC.class).to(MockC.class); …
138 java  unit-testing  guice 

9
IntelliJでテストクラスを作成する
IntelliJ内の従来のMaven Javaプロジェクト構造内で作業しています。たとえば、 main/java/com/x/y test/java/com/x/y IntelliJを使用してmain / java / com / x / yに Fooというクラスを作成すると、test / java / com / x / yに FooTest.javaというファイルが自動的に作成されます。 Eclipseには、スケルトンテストクラスの作成に関連する作業の多くを実行するボタンがツールバーにあります。IntelliJで同様のことを知っている人はいますか? おかげで、


15
単体テストを同じプロジェクトまたは別のプロジェクトに配置しますか?
単体テストを同じプロジェクトに便宜上入れますか、それとも別のアセンブリに入れますか? 私たちのようにそれらを別のアセンブリに配置すると、ソリューション内に多数の追加プロジェクトが作成されます。コーディング中の単体テストには最適ですが、これらの余分なアセンブリをすべて使用せずにアプリケーションをリリースするにはどうすればよいですか?
137 c#  unit-testing 

8
.Netコアユニットテスト-モックIOptions <T>
ここには本当に明らかなものが欠けているように感じます。.Net Core IOptionsパターン(?)を使用してオプションを挿入する必要があるクラスがあります。そのクラスのユニットテストに行くとき、クラスの機能を検証するオプションのさまざまなバージョンを模擬したいと思います。スタートアップクラスの外でIOptionsを正しくモック/インスタンス化/設定する方法を知っている人はいますか? ここに私が取り組んでいるクラスのいくつかのサンプルがあります: 設定/オプションモデル using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace OptionsSample.Models { public class SampleOptions { public string FirstSetting { get; set; } public int SecondSetting { get; set; } } } 設定を使用するテストされるクラス: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using OptionsSample.Models using System.Net.Http; using …

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

6
RSpec vs Cucumber(RSpecストーリー)[終了]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 Railsアプリケーションの仕様を使用する必要があるのはいつですか?もちろん、仕様がどのように機能し、積極的に使用されているかはわかっています。しかし、それでもキュウリを使用するのは変だと感じています。これに関する私の現在の見解は、クライアントにアプリケーションを実装しているときにCucumberを使用すると便利であり、システム全体がまだどのように機能するかを理解していないということです。 しかし、私が自分のプロジェクトをしている場合はどうなりますか?ほとんどの場合、システムの各部分がどのように相互作用するかを知っています。私がしなければならないのは、たくさんの単体テストを書くことだけです。私がキュウリを必要とする可能性のある状況は何ですか? そして、対応する2番目の質問として、キュウリのストーリーを作成する場合、仕様を作成する必要がありますか?同じことの二重テストではないでしょうか?

16
Rubyで保護されたプライベートメソッドを単体テストする最良の方法は何ですか?
標準のRuby Test::Unitフレームワークを使用して、Rubyで保護されたメソッドとプライベートメソッドを単体テストする最良の方法は何ですか? 「パブリックメソッドのみをユニットテストする必要があります。ユニットテストが必要な場合は、保護されたメソッドやプライベートメソッドであってはなりません」と誰かがパイプを張って独断的に主張することは間違いありませんが、私はそれについて議論することにあまり興味がありません。私はいくつかの方法持っているこれらのプライベート/保護された方法は、適度に複雑で、良いと正当な理由のために保護またはプライベートを、そしてクラスのパブリック・メソッドが正常に機能してこれらの保護/プライベートメソッドに依存し、したがって、私はテストの方法が必要ですprotected / privateメソッド。 もう1つ...通常は、特定のクラスのすべてのメソッドを1つのファイルに入れ、そのクラスの単体テストを別のファイルに入れます。理想的には、この「保護されたメソッドとプライベートメソッドの単体テスト」機能をメインソースファイルではなく単体テストファイルに実装して、メインソースファイルをできるだけシンプルかつ単純にするための魔法がすべて欲しいです。

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