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

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



18
Python単体テストはどこに行くのですか?
ライブラリまたはアプリを作成している場合、単体テストファイルはどこに行きますか? テストファイルをメインアプリのコードから分離するのは良いことですが、テストするモジュールをインポートするのが難しくなるため、アプリのルートディレクトリ内の「tests」サブディレクトリにそれらを配置するのは厄介です。 ここにベストプラクティスはありますか?

30
プライベートメソッドをどのようにユニットテストしますか?
いくつかのパブリックメソッドとプライベートメソッドを持つクラスライブラリを構築しています。私はプライベートメソッドをユニットテストできるようにしたいと思います(ほとんどは開発中ですが、将来のリファクタリングにも役立つ可能性があります)。 これを行う正しい方法は何ですか?

6
ユニットテストを実行するときのC#の「内部」アクセス修飾子
私はユニットテストの初心者です。「内部」アクセス修飾子をもっと使い始める必要があるかどうかを考えています。'internal'を使用してアセンブリ変数 'InternalsVisibleTo'を設定すると、テストプロジェクトからpublicを宣言したくない関数をテストできることを知っています。少なくとも各プロジェクトには(独自に)テストプロジェクトがあるので、常に「内部」を使用するだけでよいと考えます。私がこれをしてはいけない理由を教えてくれませんか?いつ「プライベート」を使用すればよいですか?
469 c#  .net  unit-testing  tdd 


14
抽象クラスを単体テストする方法:スタブで拡張しますか?
抽象クラス、および抽象クラスを拡張するクラスを単体テストする方法を考えていました。 抽象クラスを拡張してテストし、抽象メソッドをスタブ化してから、すべての具象メソッドをテストする必要がありますか?次に、オーバーライドするメソッドのみをテストし、抽象クラスを拡張するオブジェクトのユニットテストで抽象メソッドをテストしますか? 抽象クラスのメソッドをテストするために使用できる抽象テストケースがあり、抽象クラスを拡張するオブジェクトのテストケースでこのクラスを拡張する必要がありますか? 私の抽象クラスにはいくつかの具体的なメソッドがあることに注意してください。

6
Mockitoは、複数回呼び出されたメソッドの引数をキャプチャできますか?
2回呼び出されるメソッドがあり、2番目のメソッド呼び出しの引数をキャプチャしたい。 これが私が試したものです: ArgumentCaptor<Foo> firstFooCaptor = ArgumentCaptor.forClass(Foo.class); ArgumentCaptor<Foo> secondFooCaptor = ArgumentCaptor.forClass(Foo.class); verify(mockBar).doSomething(firstFooCaptor.capture()); verify(mockBar).doSomething(secondFooCaptor.capture()); // then do some assertions on secondFooCaptor.getValue() しかしTooManyActualInvocations、MockitoはそれdoSomethingを1回だけ呼び出す必要があると考えているため、例外が発生します。 の2番目の呼び出しの引数を確認するにはどうすればよいdoSomethingですか?

18
JUnit4でテストメソッドを特定の順序で実行する方法
@Test特定の順序で注釈が付けられたテストメソッドを実行したい。 例えば: public class MyTest { @Test public void test1(){} @Test public void test2(){} } 実行するtest1()前に必ず実行したいのですtest2()がMyTest、のような注釈が見つかりませんでした@Test(order=xx)。 JUnitの作者が注文機能を望まない場合、それはJUnitにとって非常に重要な機能だと思います。なぜですか?


7
NUnit対MbUnit対MSTest対xUnit.net [終了]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 .NET用の単体テストフレームワークは非常にたくさんあります。私はこの小さな機能比較を見つけました:http : //xunit.github.io/docs/comparisons.html 今、私たちは私たちに最適なものを選ぶことになっています。しかし、どうやって?それは重要ですか?最も将来性のあるもので、その背後にまともな勢いがあるのはどれですか。機能について気にする必要がありますか?xUnitは最も近代的で.NET用に特別に設計されているようですが、NUnitも広く受け入れられているようです。MSTestは再びVisual Studioに統合されています...

10
Pythonユニットテスト-assertRaisesの反対?
特定の状況で例外が発生しないことを確認するテストを記述したいと思います。 例外が発生したかどうかをテストするのは簡単です... sInvalidPath=AlwaysSuppliesAnInvalidPath() self.assertRaises(PathIsNotAValidOne, MyObject, sInvalidPath) ...しかし、どうすればその逆ができますか。 このような私は私が何をしているのか... sValidPath=AlwaysSuppliesAValidPath() self.assertNotRaises(PathIsNotAValidOne, MyObject, sValidPath)

11
Mockitoによる静的メソッドのモック
java.sql.Connectionオブジェクトを生成するためのファクトリを作成しました: public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory { @Override public Connection getConnection() { try { return DriverManager.getConnection(...); } catch (SQLException e) { throw new RuntimeException(e); } } } に渡されたパラメーターを検証したいのですがDriverManager.getConnection、静的メソッドをモックする方法がわかりません。テストケースにはJUnit 4とMockitoを使用しています。この特定のユースケースをモック/検証する良い方法はありますか?

4
JUnit 4のテストを条件付きで無視する
OK、@Ignoreアノテーションはテストケースを実行しないようにマークするのに適しています。 ただし、ランタイム情報に基づくテストを無視したい場合があります。例としては、特定の数のコアを備えたマシンで実行する必要がある同時実行テストがあるとします。このテストがユニプロセッサマシンで実行された場合、テストに合格することは(実行されていないため)正しくないだろうと思います。テストに失敗してビルドを中断するのは間違いです。 したがって、これは正しい結果のように見えるので、実行時にテストを無視できるようにしたいのです(テストフレームワークではビルドはパスできますが、テストが実行されなかったことを記録するため)。注釈によってこの柔軟性が得られないことはかなり確実であり、問​​題のクラスのテストスイートを手動で作成する必要があると思われます。ただし、ドキュメントではこれについて何も言及されておらず、APIを調べても、これがプログラムでどのように行われるかが明確ではありません(つまりTest、@Ignoreアノテーションによって作成されたインスタンスと同等のインスタンスなどをプログラムでどのように作成しますか?) 誰かが過去に同じようなことをしたことがある、または私がこれについて他にどうしたらいいかについて明るい考えを持っているなら、私はそれについて聞いて幸せです。

30
プライベートメソッドをテストする必要がありますか、パブリックメソッドのみをテストする必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 昨年休業。 私はプライベートメソッドをテストする方法についてこの記事を読みました。オブジェクトの外部から呼び出されるパブリックメソッドのみをテストする方が速いといつも思っていたので、通常はテストしません。プライベートメソッドをテストしますか?常にテストする必要がありますか?

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