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

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

23
equalsメソッドなしで2つのクラスの等価性をアサートするにはどうすればよいですか?
ソースがない、equals()メソッドのないクラスがあるとします。そのクラスの2つのインスタンスで同等であることを主張したいと思います。 複数のアサートを実行できます: assertEquals(obj1.getFieldA(), obj2.getFieldA()); assertEquals(obj1.getFieldB(), obj2.getFieldB()); assertEquals(obj1.getFieldC(), obj2.getFieldC()); ... 初期のアサートが失敗した場合、完全な等価性の画像が得られないため、このソリューションは好きではありません。 自分で手動で比較して結果を追跡できます。 String errorStr = ""; if(!obj1.getFieldA().equals(obj2.getFieldA())) { errorStr += "expected: " + obj1.getFieldA() + ", actual: " + obj2.getFieldA() + "\n"; } if(!obj1.getFieldB().equals(obj2.getFieldB())) { errorStr += "expected: " + obj1.getFieldB() + ", actual: " + obj2.getFieldB() + "\n"; } ... …
111 java  unit-testing  junit 

7
モジュールがモックされていないときに、インポートされた名前付き関数をJestでモックする方法
Jestでテストしようとしている次のモジュールがあります。 // myModule.js export function otherFn() { console.log('do something'); } export function testFn() { otherFn(); // do other things } 上に示したように、いくつかの名前付き関数をエクスポートし、重要なことにをtestFn使用しotherFnます。 Jestで、の単体テストを作成しているときに、の単体テストにエラーが影響しないようにするためtestFn、otherFn関数をモックしたいと思います。私の問題は、それを行うための最良の方法がわからないということです。otherFntestFn // myModule.test.js jest.unmock('myModule'); import { testFn, otherFn } from 'myModule'; describe('test category', () => { it('tests something about testFn', () => { // I want to mock "otherFn" …

7
プロジェクトが「.NETFramework、Version = v4.6.2」フレームワークを参照していません。「TargetFrameworks」に「.NETFramework、Version = v4.6.2」への参照を追加します
ユニットテストを実行できません。 次のエラーがあります: プロジェクトが「.NETFramework、Version = v4.6.2」フレームワークを参照していません。プロジェクトファイルの「TargetFrameworks」プロパティに「.NETFramework、Version = v4.6.2」への参照を追加してから、NuGet復元を再実行します。 でapp.config: <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/> </startup> プロジェクト>プロパティ>アプリケーション> TargetFramework(.NET Framework 4.6.2) どうすれば修正できますか?

7
Django 1.7で単体テストを実行するときに移行を無効にする
Django 1.7では、データベースの移行が導入されました。 Django 1.7でユニットテストを実行すると、移行が強制的に行われ、時間がかかります。だから私はdjangoの移行をスキップして、最終的な状態でデータベースを作成したいと思います。 コードのその部分はテストされないので、移行を無視することは悪い習慣になることを知っています。しかし、そうではありません。CIテストサーバー(ジェンキンス)で完全な移行を実行しています。速度が重要なローカルテストでは、移行をスキップしたいだけです。 いくつかのコンテキスト: Django 1.6まで、Southを使用するときは、SOUTH_TESTS_MIGRATE設定を使用していました。 デフォルトでは、Southのsyncdbコマンドは、非インタラクティブモードで実行されている場合、移行を適用します。これには、テストの実行時も含まれます。テストを実行するたびにすべての移行が実行されます。 テストランナーで移行の代わりにsyncdbを使用する場合-たとえば、移行の適用に時間がかかりすぎる場合は、settings.pyでSOUTH_TESTS_MIGRATE = Falseを設定するだけです。 ただし、syncdbはもう存在していません。現在は移行しています。 Django 1.8以降は--keepdbパラメータを使用します。 --keepdbオプションを使用すると、テスト実行間でテストデータベースを保持できます。これには、作成アクションと破棄アクションの両方をスキップするという利点があり、特に大規模なテストスイートでのテストの実行時間を大幅に短縮します。テストデータベースが存在しない場合、最初の実行時に作成され、その後の実行ごとに保存されます。適用されていない移行は、テストスイートを実行する前にテストデータベースにも適用されます。 したがって、この質問はDjango 1.7に限定されています。

21
単体テストでのHttpClientのモック
単体テストで使用するコードをラップしようとすると、いくつか問題があります。問題はこれです。IHttpHandlerインターフェイスがあります。 public interface IHttpHandler { HttpClient client { get; } } そしてそれを使用するクラス、HttpHandler: public class HttpHandler : IHttpHandler { public HttpClient client { get { return new HttpClient(); } } } 次に、simpleIOCを使用してクライアント実装を注入するConnectionクラス: public class Connection { private IHttpHandler _httpClient; public Connection(IHttpHandler httpClient) { _httpClient = httpClient; } } そして、私はこのクラスを持つユニットテストプロジェクトを持っています: private IHttpHandler …
110 c#  unit-testing  moq 

12
Android Studioでテストを作成するにはどうすればよいですか?
Intellij Ideaに基づいたAndroid Studioをダウンロードしました。 どのようにしてテストを作成しますか? テストモジュールを作成するオプションがあることに気づきましたが、これは何もしないようで、srcで新しいプロジェクトを作成するだけです また、既存のクラスでユニットテストを作成できるCTRL + AlT + Tのホットキーを押してみましたが、現在のプロジェクトに配置したいようです。もちろん、これはTDDには役立ちません 誰かここで何か経験がありますか?

4
SQLクエリをテストする最良の方法[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 この質問を改善する 複雑なSQLクエリでエラーが発生し続けるという問題に遭遇しました。本質的に、これは誤った顧客やそのような他の「問題」にメールを送信することになります。 そのようなSQLクエリを作成することで誰もが経験したことは何ですか?隔週で新しいデータのコホートを作成しています。 だからここに私の考えのいくつかとそれらへの制限があります: テストデータの作成これにより、すべての正しいデータがあることが証明されますが、本番環境での異常の排除は強制されません。これは、今日は間違っていると考えられるデータですが、10年前は正しかった可能性があります。それは文書化されていなかったため、データが抽出された後にのみそれについて知っています。 ベン図とデータマップを作成するこれはクエリのデザインをテストするための確かな方法のようですが、実装が正しいことを保証するものではありません。これにより、開発者は前もって計画を立て、執筆中に何が起こっているのかを考えることができます。 あなたが私の問題に与えることができる任意の入力をありがとう。
109 sql  unit-testing 

24
ジュニアプログラマーにテストを作成させる方法は?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 この質問を改善する 十分なテストを書いていないジュニアプログラマーがいます。 私は彼に2時間ごとに「テストを書いてくれましたか?」 私たちは試しました: デザインがシンプルになることを示す それを示すことは欠陥を防ぐ 悪いプログラマだけがしないと言って、それをエゴなものにする 彼のコードにはNULL参照があり、テストしなかったため、今週末、2人のチームメンバーが作業する必要がありました。 私の仕事には最高品質の安定したコードが必要であり、通常、誰もがそれを「理解」し、テストを実行する必要はありません。私たちは彼にテストを書かせることができることを知っていますが、あなたがそれに入ったときに書かれたものが有用なテストであることは誰もが知っています。 もっと動機を知っていますか?

7
Dartプログラムを「スリープ」するにはどうすればよいですか
テストのために、Dartアプリケーションで非同期Webサービス呼び出しをシミュレートするのが好きです。応答するこれらのモックコールのランダム性をシミュレートするために(おそらく順序が狂っています)、「Future」を返す前に一定時間待機(スリープ)するようにモックをプログラムしたいと思います。 これどうやってするの?

7
F#開発と単体テスト?
私はF#を使い始めました。これは私の最初の関数型言語です。私はC#で準独占的に作業しており、F#でコードの記述方法を再考する方法をたくさん楽しんでいます。私が少し混乱していると思う1つの側面は、コードを書くプロセスの変更です。私はC#で何年もTDDを使用してきましたが、自分がどこにいるのかを知るための単体テストがあると本当に感謝しています。 これまでのところ、F#での私のプロセスは、いくつかの関数を記述し、それらが機能することを「合理的に」確認できるまで対話型コンソールで遊んで、調整して組み合わせることでした。これはオイラープロジェクトのような小規模な問題ではうまく機能しますが、そのように大きなものを構築することは想像できません。 人々はどのようにユニットテストに取り組み、F#プログラムのテストスイートを構築しますか?TDDに相当するものはありますか?ご意見やご感想をお寄せください。

6
NUnitと同様のxUnit.netでのパラメーター化のテスト
xUnit.netフレームワークには、NUnitの以下の機能に類似した手段はありますか? [Test, TestCaseSource("CurrencySamples")] public void Format_Currency(decimal value, string expected){} static object[][] CurrencySamples = new object[][] { new object[]{ 0m, "0,00"}, new object[]{ 0.0004m, "0,00"}, new object[]{ 5m, "5,00"}, new object[]{ 5.1m, "5,10"}, new object[]{ 5.12m, "5,12"}, new object[]{ 5.1234m, "5,12"}, new object[]{ 5.1250m, "5,13"}, // round new object[]{ 5.1299m, "5,13"}, …


5
テスト用にExpressJSのインスタンスをプログラムでシャットダウンするにはどうすればよいですか?
Expressのインスタンスをシャットダウンする方法を理解しようとしています。基本的に、私はの逆が欲しい.listen(port)呼び出し -Expressサーバーにリスニングを停止させ、ポートを解放し、きれいにシャットダウンするにはどうすればよいですか? これは奇妙なクエリのように思えるので、ここにコンテキストがあります。多分これにアプローチする別の方法があり、私はそれを間違った方法で考えています。私のsocket.io/nodejsアプリのテストフレームワークをセットアップしようとしています。これは単一ページのアプリなので、テストスクリプトでは( Mocha、しかしそれは重要ではありません)サーバーを起動し、テストを実行してサーバーをシャットダウンできるようにしたいと考えています。テストを開始する前にサーバーの電源がオンになっていると想定するか、テストの1つでサーバーを開始し、後続のすべてのテストでサーバーが稼働していると想定することで、これを回避できますが、それは本当に厄介です。各テストファイルで適切な設定でサーバーインスタンスを起動し、テストが終了したらそのインスタンスをシャットダウンすることをお勧めします。つまり、テストを実行するのに奇妙な依存関係はなく、すべてがクリーンです。また、起動/シャットダウンテストを実行できることも意味します。 これを行う方法についてのアドバイスはありますか?私はそれをダウンさせるために手動で例外をトリガーすることを考えましたが、それは面倒そうです。Expressのドキュメントとソースを調べましたが、サーバーをシャットダウンする方法を見つけることができません。このためのsocket.ioにも何かがあるかもしれませんが、ソケットサーバーはExpressサーバーに接続されているだけなので、これはExpressレイヤーで行う必要があると思います。

12
NUnitでプライベートメソッドをどのようにテストしますか?
NUnitを正しく使用する方法を知りたいです。最初に、メインプロジェクトを参照として使用する別のテストプロジェクトを作成しました。しかしその場合、私はプライベートメソッドをテストすることができません。私の推測では、メインコードにテストコードを含める必要がありますか?-それは正しい方法ではないようです。(コードにテストを組み込んで出荷するという考えは嫌いです。) NUnitでプライベートメソッドをどのようにテストしますか?

30
単体テストが非常に優れている場合、なぜそれを行う企業が増えないのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私が最初に働いた実際のソフトウェア会社はすべてユニットテスト(NUnit)に関するものでした。当時、私たちが本当の意味でのステッカーだったのかはわかりません。コードカバレッジがどのようなものであるかわからないので、ほとんどの単体テストを作成していました。それ以来、私は多くのテストを行ういくつかの企業に出くわしましたが、それは椅子のテストです。そこにいる人に依存しているため、再現性が低く、バグをキャッチする可能性が低くなっています。もう1つの態度は、「将来的に」彼らがやりたかったことでした。基本的にお金が空から落ちるとき。 ユニットテストに失敗しました。これにより、作業が楽になります。しかし、私は新しい仕事を探すときに、ユニットテストは企業が将来的に「やり遂げたい」ものか、まったく行わないものであることに気づきました(ええと、それはしばらくの間存在しています今!)過去2年間に私が見た求人の60〜75%には、単体テストがまったく記載されていないと思います。私は、単体テストの経験が1つまたは2つあることだけを要件として考えることができます(中間レベルの開発者のポジションの場合)。 だから問題は、何が欠けているのですか?それは人々の生産性を向上させると思いますが、それは実際にそれを行うために確かな時間を費やした後にのみです。単体テストのコスト削減についての良い研究はありませんか?私が見ている種類の会社ですか? 編集:タイトルは少し悪魔の支持者ですが、私は自分自身を単体テストの支持者と考えています。
103 unit-testing 

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