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

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

9
モッキート。メソッドの引数を確認する
私はこれについてグーグルで調べましたが、関連するものは何も見つかりませんでした。私はこのようなものを持っています: Object obj = getObject(); Mockeable mock= Mockito.mock(Mockeable.class); Mockito.when(mock.mymethod(obj )).thenReturn(null); Testeable testableObj = new Testeable(); testableObj.setMockeable(mock); command.runtestmethod(); ここで、mymethod(Object o)内runtestmethod()で呼び出されたが、o他ではなくObject で呼び出されたことを確認します。しかし、私は、たとえば、次のように、検証に置いたものは何でも、常にテストに合格します。 Mockito.verify(mock.mymethod(Mockito.eq(obj))); または Mockito.verify(mock.mymethod(Mockito.eq(null))); または Mockito.verify(mock.mymethod(Mockito.eq("something_else"))); 私はいつもテストに合格します。どうすればその検証を実行できますか(可能な場合)? ありがとうございました。


30
Visual Studio 2017で単体テストが検出されない
VS 2017をインストールしてから苦労しています。ユニットテストはコマンドラインの「ドットネットテスト」からのみ実行されるようです。 私のプロジェクトは.NET Core 1.1.1です。SDKと1.1.1のフレームワークの更新がインストールされています。 私はMSDNでサンプル(https://msdn.microsoft.com/en-us/library/ms182532.aspx)を試しましたが、これもまったく同じように失敗します。 テストとメインプロジェクトのすべてのNuGetパッケージが最新です。そして、テストプロジェクトとメインプロジェクトの両方がエラーなしでビルドされます。テストはコマンドラインから正常に実行されます。 誰かがVS 2017で実行するユニットテストを取得していますか? ありがとう、ジョン 更新-延長 以下は、GitHubで動作しない簡単なテストプロジェクトの例です。これはxUnitの例ですが、MSテストで構築されたNUnitとビジュアルスタジオを試しました。どのようなテストや変更を加えても、VSテストランナーにテストを見つけることはできません。 私が試したこと VSテストキャッシュファイルの削除 DEL %TEMP%\VisualStudioTestExplorerExtensions VSの再起動 テストエクスプローラーを閉じる/開く xUnitがインストールされている場合Microsoft.DotNet.InternalAbstractions(SO postを参照) NUnitの場合、アダプターがインストールされており、NUnitパッケージと同じバージョン(3)であることを確認してください test -> test settings -> default processor architecture x86に設定されています 質問 缶誰でもVSテストエクスプローラが正常にユニットテストを見つけるVS2017で、.NETのコア1.1.0溶液(.csprojプロジェクトファイル)の実施例を提供してくださいOR私に与えられた例では、問題を示しています。


15
Angular 2 Unit Tests:名前「describe」が見つかりません
私はangular.ioからこのチュートリアルに従っています 彼らが言ったように、ユニットテストを作成するためにhero.spec.tsファイルを作成しました: import { Hero } from './hero'; describe('Hero', () => { it('has name', () => { let hero: Hero = {id: 1, name: 'Super Cat'}; expect(hero.name).toEqual('Super Cat'); }); it('has id', () => { let hero: Hero = {id: 1, name: 'Super Cat'}; expect(hero.id).toEqual(1); }); }); 単体テストは魅力のように機能します。問題は、チュートリアルで言及されているいくつかのエラーが表示されることです。 私たちのエディタとコンパイラのは、彼らが何を知っていないと文句を言うことit とexpect、彼らはジャスミンを記述タイピングファイルを欠いているためです。それらは無害なので、今のところそれらの迷惑な苦情は無視できます。 そして彼らは実際にそれを無視した。これらのエラーは無害ですが、大量のエラーを受け取った場合、出力コンソールでは見栄えがよくありません。 …

20
単体テストとは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 12か月前に閉鎖。 この質問を改善する 特定の言語でユニットテストを行う方法を尋ねる質問はたくさんありましたが、「何を」、「なぜ」、「いつ」を尋ねる質問はありませんでした。 それは何ですか? それは私にとって何をしますか? なぜ使用する必要があるのですか? いつ使用すべきですか(使用しない場合も)? いくつかの一般的な落とし穴と誤解は何ですか

4
Mockitoはメソッド呼び出しの順序/シーケンスを検証します
MockitoでmethodOne以前methodTwoに呼び出されているかどうかを確認する方法はありますか? public class ServiceClassA { public void methodOne(){} } public class ServiceClassB { public void methodTwo(){} } public class TestClass { public void method(){ ServiceClassA serviceA = new ServiceClassA(); ServiceClassB serviceB = new ServiceClassB(); serviceA.methodOne(); serviceB.methodTwo(); } }


30
単体テストアンチパターンカタログ
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 アンチパターン:実際のアンチパターンを単純な悪い習慣、悪い習慣、悪い考えから正式に区別するには、少なくとも2つの重要な要素が存在する必要があります。 最初は有益であるように見えるが、最終的には有益な結果よりも悪い結果をもたらす、繰り返される行動パターン、プロセスまたは構造 明確に文書化され、実際の実践で実証され、再現可能なリファクタリングされたソリューション。 「実際に」一度見たTDDアンチパターンに投票してください。 James Carrによるブログ投稿と テスト駆動開発yahoogroupに関する関連ディスカッション 名前のないものを見つけた場合は、投稿してください。アンチパターンごとに1つの投稿をして、投票が何かにカウントされるようにしてください。 私の既得権は、トップnのサブセットを見つけることです。そうすれば、近い将来、ランチボックスのミーティングで話し合うことができます。

7
単体テストの一般的な命名規則は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 一般的な すべてのテストで同じ基準に従います。 各テストの状態が何であるかを明確にします。 予想される動作について具体的に説明します。 例 1)MethodName_StateUnderTest_ExpectedBehavior Public void Sum_NegativeNumberAs1stParam_ExceptionThrown() Public void Sum_NegativeNumberAs2ndParam_ExceptionThrown () Public void Sum_simpleValues_Calculated () 出典:単体テストの命名基準 2)各単語をアンダースコアで区切る Public void Sum_Negative_Number_As_1st_Param_Exception_Thrown() Public void Sum_Negative_Number_As_2nd_Param_Exception_Thrown () Public void Sum_Simple_Values_Calculated () その他の Testでメソッド名を終了する クラス名でメソッド名を開始する

5
Mockitoモックオブジェクトに、次に呼び出されたときに別のオブジェクトを返すように指示するにはどうすればよいですか?
だから、私はモックオブジェクトをクラスレベルで静的変数として作成しています...あるテストでFoo.someMethod()は特定の値を返し、別のテストでは別の値を返します。私が抱えている問題は、これを正しく機能させるためにモックを再構築する必要があるようだということです。モックの再構築を避け、各テストで同じオブジェクトを使用するだけです。 class TestClass { private static Foo mockFoo; @BeforeClass public static void setUp() { mockFoo = mock(Foo.class); } @Test public void test1() { when(mockFoo.someMethod()).thenReturn(0); TestObject testObj = new TestObject(mockFoo); testObj.bar(); // calls mockFoo.someMethod(), receiving 0 as the value } @Test public void test2() { when(mockFoo.someMethod()).thenReturn(1); TestObject testObj = new TestObject(mockFoo); …

6
Mockito.verify()を使用する場合
私は3つの目的でjUnitテストケースを作成します。 すべての(またはほとんどの)入力の組み合わせ/値の下で、コードが必要な機能のすべてを確実に満たすようにします。 実装を変更できることを確認し、JUnitテストケースに依存して、すべての機能がまだ満足していることを通知します。 私のコードが扱うすべてのユースケースのドキュメントとして、コードをリライトする必要がある場合に備えて、リファクタリングの仕様として機能します。(コードをリファクタリングし、私のjUnitテストが失敗した場合-おそらくいくつかのユースケースを見逃していたでしょう)。 なぜ、いつMockito.verify()使うべきかわかりません。verify()呼び出されているのを見ると、私のjUnitが実装を認識していることがわかります。(したがって、私の機能に影響がなかったとしても、私の実装を変更すると、jUnitsが壊れてしまいます)。 を探しています: の適切な使用のためのガイドラインはMockito.verify()何ですか? jUnitsがテスト対象のクラスの実装を認識または密接に結合することは基本的に正しいですか?

10
Junit TestのデフォルトのSpring-Boot application.properties設定を上書きする
デフォルトのプロパティがapplication.propertiesクラスパス(src / main / resources / application.properties)のファイルに設定されているSpring-Bootアプリケーションがあります。 JUnitテストのいくつかのデフォルト設定を、test.propertiesファイル(src / test / resources / test.properties)で宣言されたプロパティで上書きしたい 私は通常、Junitテスト用の専用のConfigクラスを持っています。 package foo.bar.test; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @Import(CoreConfig.class) @EnableAutoConfiguration public class TestConfig { } @PropertySource("classpath:test.properties")TestConfigクラスで使用するとうまくいくと最初に思いましたが、これらのプロパティはapplication.properties設定を上書きしません(Spring-Boot Reference Doc- 23. Externalized Configurationを参照)。 次に-Dspring.config.location=classpath:test.properties、テストを呼び出すときに使用してみました。これは成功しました。ただし、テストの実行ごとにこのシステムプロパティを設定したくありません。したがって、私はそれをコードに入れました @Configuration @Import(CoreConfig.class) @EnableAutoConfiguration public class TestConfig { static { System.setProperty("spring.config.location", "classpath:test.properties"); } …

16
Java:System.exit()を呼び出すメソッドをテストする方法は?
System.exit()特定の入力を呼び出す必要があるいくつかのメソッドがあります。残念ながら、これらのケースをテストすると、JUnitが終了します。System.exit()現在のスレッドだけでなく、JVMを終了するため、メソッド呼び出しを新しいスレッドに配置しても効果がないようです。これに対処するための一般的なパターンはありますか?たとえば、スタブを代用できSystem.exit()ますか? [編集]問題のクラスは、実際には私がJUnit内でテストしようとしているコマンドラインツールです。たぶんJUnitは単に仕事に適したツールではありませんか?補完的な回帰テストツールの提案を歓迎します(できれば、JUnitやEclEmmaとうまく統合できるものが望ましい)。

5
Mockito-doReturn()とwhen()の違い
現在、Mockitoを使用して、コントローラーメソッドをテストするSpring MVCアプリケーションのサービスレイヤーオブジェクトをモックしています。ただし、Mockitoの詳細を読んでいると、メソッドdoReturn(...).when(...)がと同等であることがわかりましたwhen(...).thenReturn(...)。だから、私の質問には微妙な違い何で同じことを行うか、二つの方法持つのポイント何ですdoReturn(...).when(...)とwhen(...).thenReturn(...)? 任意の助けいただければ幸いです。

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