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

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

8
Spring Dataリポジトリをテストする方法は?
UserRepositorySpring Dataの助けを借りて作成されたリポジトリ(たとえば、)が必要です。私はspring-dataを初めて使用しますが(springは使用しません)、このチュートリアルを使用します。データベースを扱うための私のテクノロジーの選択は、JPA 2.1とHibernateです。問題は、そのようなリポジトリの単体テストを作成する方法について私が無知であることです。 create()メソッドを例にとってみましょう。私は最初にテストを行っているので、そのための単体テストを作成することになっています。そこで、3つの問題にぶつかります。 最初に、インターフェイスのEntityManager存在しない実装にモックを注入するにはどうすればよいUserRepositoryですか?Spring Dataはこのインターフェースに基づいた実装を生成します: public interface UserRepository extends CrudRepository<User, Long> {} ただし、EntityManagerモックや他のモックを使用するように強制する方法がわかりません。自分で実装を記述した場合、おそらくのセッターメソッドがありEntityManager、モックをユニットテストに使用できます。(実際のデータベース接続に関しては、およびのJpaConfiguration注釈が付けられたクラスが@Configurationあり@EnableJpaRepositories、プログラムDataSourceによってEntityManagerFactory、EntityManagerなどのBeanを定義していますが、リポジトリはテストに適しており、これらのものをオーバーライドできる必要があります)。 次に、相互作用をテストする必要がありますか?私はどのような方法を把握することは困難であるEntityManagerとQuery(それに似呼ばれるようになっているverify(entityManager).createNamedQuery(anyString()).getResultList();)、それは実装を書いている人は私ではないので、。 3番目に、Spring-Dataで生成されたメソッドを最初に単体テストする必要がありますか?私が知っているように、サードパーティのライブラリコードは単体テストではなく、開発者自身が作成したコードのみが単体テストされることになっています。しかし、それは本当ならば、それはまだシーンに最初の質問の背中をもたらします:言うが、私は実装を書くことになるための私のリポジトリ用のカスタムメソッドのカップルを、持って、どのように私は私のモック注入しないEntityManagerとQuery生成され、最終的にはリポジトリ? 注:統合テストと単体テストの両方を使用してリポジトリをテストします。統合テストではHSQLインメモリデータベースを使用していますが、単体テストではデータベースを使用していません。 そしておそらく4番目の質問は、統合テストで正しいオブジェクトグラフの作成とオブジェクトグラフの取得をテストすることは正しいですか(たとえば、Hibernateで定義された複雑なオブジェクトグラフがあるとします)。 更新:今日はモックインジェクションの実験を続けました-モックインジェクションを可能にする静的内部クラスを作成しました。 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @Transactional @TransactionConfiguration(defaultRollback = true) public class UserRepositoryTest { @Configuration @EnableJpaRepositories(basePackages = "com.anything.repository") static class TestConfiguration { @Bean public EntityManagerFactory entityManagerFactory() { return mock(EntityManagerFactory.class); } @Bean public EntityManager entityManager() { …

5
ユニットテストの書き方は?
Javaクラスがあります。どうすればそれを単体テストでき ますか? 私の場合、私はクラスにバイナリ合計を行います。2つのbyte[]配列を受け取り、それらを合計して、新しいバイナリ配列を返します。
135 java  unit-testing 


5
Mockito:バインドされたワイルドカードで型を返すスタブメソッド
このコードを考えてみましょう: public class DummyClass { public List<? extends Number> dummyMethod() { return new ArrayList<Integer>(); } } public class DummyClassTest { public void testMockitoWithGenerics() { DummyClass dummyClass = Mockito.mock(DummyClass.class); List<? extends Number> someList = new ArrayList<Integer>(); Mockito.when(dummyClass.dummyMethod()).thenReturn(someList); //Compiler complains about this } } コンパイラは、の動作をスタブ化しようとしている行について文句を言いdummyMethod()ます。ワイルドカードがバインドされた型を返すメソッドをスタブする方法についてのポインタはありますか?

22
C ++コードの単体テスト-ツールと方法論[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4年前休業。 この質問を改善する 私は数年前から開発されている大規模なc ++システムに取り組んでいます。既存のコードの品質を向上させるための取り組みの一環として、大規模な長期リファクタリングプロジェクトに取り組みました。 C ++で単体テストを作成するのに役立つ優れたツールを知っていますか?たぶんJunitやNunitに似ていますか? 誰かがユニットテストを考慮せずに書かれたモジュールのユニットテストを書く方法論について何か良いアドバイスを与えることはできますか?


11
テストにJUnitを使用する理由
たぶん私の質問は初心者のものですが、私が使用する状況を本当に理解できません junit? 単純なアプリケーションを作成する場合でも、大きなアプリケーションを作成する場合でも、System.outステートメントを使用してテストします。 JUnitを使用してテストクラスを作成する必要があります。同じメソッドを呼び出す必要がある場合、プロジェクトに不要なフォルダーを作成し、それらが返すものを確認すると、すべてに注釈を付けるオーバーヘッドが発生します。 クラスをSystem.out作成して一度にテストしますが、Testクラスを作成しないのはなぜですか? PS。私は今学んでいる大きなプロジェクトに取り組んだことがありません。 それで、目的は何ですか?
131 java  unit-testing  junit  tdd 

6
Mockを使用して関数/メソッドが呼び出されなかったことを表明する
Mockライブラリを使用してアプリケーションをテストしていますが、一部の関数が呼び出されなかったと主張します。モックドキュメントはやなどのメソッドについて話しますがmock.assert_called_with、モックが呼び出されmock.assert_called_once_withなかったことmock.assert_not_calledを確認するためのようなものや何かに関連するものは見つかりませんでした。 私は次のようなもので行くことができますが、それはクールでもPythonicでもないようです: def test_something: # some actions with patch('something') as my_var: try: # args are not important. func should never be called in this test my_var.assert_called_with(some, args) except AssertionError: pass # this error being raised means it's ok # other stuff これを達成する方法はありますか?

9
mochaとnode.jsによるプライベート関数の単体テスト
node.js用に作成されたアプリケーションを単体テストするためにモカを使用しています モジュールにエクスポートされていない関数を単体テストすることは可能ですか? 例: 私はこのように定義された多くの関数を持っています foobar.js function private_foobar1(){ ... } function private_foobar2(){ ... } パブリックとしてエクスポートされたいくつかの関数: exports.public_foobar3 = function(){ ... } テストケースは次のように構成されています。 describe("private_foobar1", function() { it("should do stuff", function(done) { var stuff = foobar.private_foobar1(filter); should(stuff).be.ok; should(stuff)..... private_foobar1はエクスポートされないため、明らかにこれは機能しません。 プライベートメソッドを単体テストする正しい方法は何ですか?モカにはそれを行うためのいくつかの組み込みメソッドがありますか?



14
TDDとBDDの主な違いは何ですか?[閉まっている]
休業。この質問はもっと集中する必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4ヶ月前に閉鎖。 この質問を改善する ここ数年、.NETコミュニティではテスト駆動開発が大流行しています。最近、ALT.NETコミュニティでBDDについて不平を言っています。それは何ですか?TDDと何が違うのですか?
129 unit-testing  tdd  bdd 

4
コードを内部に作成しますが、他のプロジェクトからのユニットテストに使用できます
すべての単体テストを独自のプロジェクトに入れます。単体テストのためだけに、内部ではなく特定のクラスを公開する必要があることがわかりました。とにかくこれを行う必要を避けるためにありますか?クラスを封印する代わりに公開することによるメモリの意味は何ですか?
129 c#  unit-testing  scope 

13
ASP.NET CoreでILoggerを使用してユニットテストを行う方法
これは私のコントローラーです: public class BlogController : Controller { private IDAO<Blog> _blogDAO; private readonly ILogger<BlogController> _logger; public BlogController(ILogger<BlogController> logger, IDAO<Blog> blogDAO) { this._blogDAO = blogDAO; this._logger = logger; } public IActionResult Index() { var blogs = this._blogDAO.GetMany(); this._logger.LogInformation("Index page say hello", new object[0]); return View(blogs); } } ご覧のとおり、a IDAOとaの2つの依存関係があります。ILogger これが私のテストクラスです。xUnitを使用してテストし、Moqを使用してモックとスタブを作成します。DAO簡単にモックを作成できますが、ILogger何をすべきかわからないので、nullを渡してコメントをコメントアウトし、コントローラにログインします。テストを実行するとき。テストする方法はありますが、それでもロガーを維持しますか? public class …

7
Angular返品モジュールのテストサービスが定義されていません
プロジェクト(GitHubのAngular Seedプロジェクトから取得)でデフォルトのサービスユニットテストを実行しようとしていますが、「モジュールが定義されていません」というエラーが発生し続けます。 参照されたJavaScriptファイルの順序に関係している可能性があることを読みましたが、動作しないようですので、あなたの1人が助けてくれるといいのですが。 テストの構成は次のようになります。 basePath = '../'; ファイル= [ 'public / javascripts / lib / jquery-1.8.2.js'、 'public / javascripts / lib / angular.js'、 'public / javascripts / lib / angular- .js'、'public / app.js '、 ' public / controllers / .js '、 ' public / directives.js '、 ' public / filters.js …

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