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

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

6
mocha.jsを使用して複数のファイルからテストを結合する
複数のファイルからのすべてのテストを1つのファイルに結合しようとしています。次のようになります。 describe('Controllers', function() { describe('messages.js', function() { require('./controllertests/messages').test(options); }) describe('users.js', function() { require('./controllertests/users').test(options); }) }) 私はこれがテストに参加するための最良の方法ではないと確信しています、私はこれを行う方法の例を見つけるのにいくつかの困難があります:s

12
Linuxで共有ライブラリとしてgoogleTestを設定する方法
Debianは、gTest用のプリコンパイル済みパッケージを提供しなくなりました。フレームワークをプロジェクトのメイクファイルに統合することをお勧めします。しかし、メイクファイルをクリーンに保ちたいです。以前のバージョン(<1.6.0)のようにgTestを設定して、ライブラリに対してリンクできるようにするにはどうすればよいですか?

3
Jestモック関数の呼び出しをリセットする方法はすべてのテストの前にカウントします
Jestは初めてですが、関数が呼び出されたかどうかをテストするために使用しようとしています。mock.calls.lengthがすべてのテストでリセットされるのではなく、蓄積されていることに気づきました。すべてのテストの前にどうすれば0にすることができますか?次のテストが前の結果に依存することを望まない。 JestにはbeforeEachがあることを知っています-それを使用する必要がありますか?mock.calls.lengthをリセットする最良の方法は何ですか?ありがとうございました。 コード例: Sum.js: import local from 'api/local'; export default { addNumbers(a, b) { if (a + b <= 10) { local.getData(); } return a + b; }, }; Sum.test.js import sum from 'api/sum'; import local from 'api/local'; jest.mock('api/local'); // For current implementation, there is a difference // if I …

6
Assert.AreEqual(T obj1、Tobj2)が同一のバイト配列で失敗するのはなぜですか
次のコードセグメントに2つの同一のバイト配列があります。 /// <summary> ///A test for Bytes ///</summary> [TestMethod()] public void BytesTest() { byte[] bytes = Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketData); TransferEventArgs target = new TransferEventArgs(bytes); byte[] expected = Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketValue); byte[] actual; actual = target.Bytes; Assert.AreEqual(expected, actual); } 両方の配列は、バイト単位まで同一です。このシナリオでは、なぜAssert.AreEqualが失敗するのでしょうか。

7
C#とRhinoMocksを使用したテスト駆動開発のベストプラクティス[終了]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 8年前に閉鎖されました。 チームがテスト可能なコードを作成できるようにするために、C#コードベースをよりテストしやすくするためのベストプラクティスの簡単なリストを作成しました。(いくつかのポイントは、C#のモックフレームワークであるRhino Mocksの制限に言及していますが、ルールはより一般的に適用される場合もあります。)従うベストプラクティスはありますか? コードのテスト容易性を最大化するには、次のルールに従います。 最初にテストを記述し、次にコードを記述します。理由:これにより、テスト可能なコードを記述し、コードのすべての行でテストが記述されるようになります。 依存性注入を使用してクラスを設計します。理由:見えないものをモックしたりテストしたりすることはできません。 Model-View-ControllerまたはModel-View-Presenterを使用して、UIコードをその動作から分離します。理由:テストできない部分(UI)を最小限に抑えながら、ビジネスロジックをテストできるようにします。 静的メソッドまたはクラスを記述しないでください。 理由:静的メソッドを分離することは困難または不可能であり、RhinoMocksはそれらをモックすることができません。 クラスではなく、インターフェイスをプログラムします。理由:インターフェースを使用すると、オブジェクト間の関係が明確になります。インターフェイスは、オブジェクトがその環境から必要とするサービスを定義する必要があります。また、RhinoMocksやその他のモックフレームワークを使用してインターフェイスを簡単にモックすることができます。 外部の依存関係を分離します。理由:未解決の外部依存関係はテストできません。 モックするメソッドを仮想としてマークします。理由:RhinoMocksは非仮想メソッドをモックできません。

5
Perlビルド、単体テスト、コードカバレッジ:完全な実例
Perlビルドプロセスとユニットテストおよびコードカバレッジに関して私が見つけたほとんどのStackoverflowの回答は、そこにあるドキュメントのCPANを示しているだけです。CPANモジュールを指すことは、完全なドキュメントが存在することになっている場所であるため、まったく問題はありません。しかし、多くの場合、完全に機能するコード例を見つけるのに苦労しました。 典型的なチュートリアル「HelloWorld」のサンプルソースコードのように、ダウンロードまたはIDEに貼り付けることができる実際の動作コードサンプルをインターネット全体で検索してきましたが、単体テストとコードを使用したビルドプロセスを示す例です。カバレッジ分析。これらのテクノロジーとプロセスを実証する完全な作業プロジェクトの小さな例を誰かが持っていますか? (私には小さな実用的な例があり、それを使って自分の質問に答えますが、私が思いついたものよりも良い例を持っている他のSOユーザーがおそらくいるでしょう。)

2
Angular2テスト-非同期関数呼び出し-いつ使用するか
Angular 2でテストするときに、TestBedで非同期関数を使用するのはいつですか? いつ使うの? beforeEach(() => { TestBed.configureTestingModule({ declarations: [MyModule], schemas: [NO_ERRORS_SCHEMA], }); }); そして、いつこれを使用しますか? beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [MyModule], schemas: [NO_ERRORS_SCHEMA], }); })); 誰かがこれについて私に教えてもらえますか?

12
Android Studioでパラメーター化された単体テストを実行すると、特定のテストにエラーが含まれていません
AndroidStudioで以下のようにパラメータ化された単体テストを実行してみました。 import android.test.suitebuilder.annotation.SmallTest; import junit.framework.TestCase; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class) @SmallTest public class FibonacciTest extends TestCase { @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { {0, 0}, {1, 1}, {2, 1}, {3, 2}, {4, 3}, {5, …

1
Moqはオブジェクトパラメータで検証します
クラスであるパラメータを検証しようとしています。テスト中のコードは問題ありません。バグはテスト中です。 私は2つの方法を試しましたが、どちらも失敗しました。 これが私の試みです: 1: this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions() { Width = 256, Height = 256, })); 2番目のパラメーターとして渡されたオブジェクトのプロパティが等しい場合でも、これは常に失敗します。最初のパラメータは正常に検証されます。 2: this.MockImageResizeFilter.Setup(m => m.Filter(It.IsAny<byte[]>(), It.IsAny<ImageFilterOptions>())) .Callback<byte[], ImageFilterOptions>((data, options) => { Assert.AreEqual(this.UploadedFileData, data, "data"); Assert.AreEqual(filterOptions.Width, options.Width, "Width"); Assert.AreEqual(filterOptions.Height, options.Height, "Height"); } ); これは、失敗した場合でも常に合格です。コールバックのAssertsは失敗しますが、例外は外部コンテキストに渡されないため、テストは常に合格します。 私が間違っていることを見つけるのを手伝ってくれませんか?
86 c#  .net  unit-testing  moq 

3
RSpecの件名とletの違いは何ですか?いつ使用すべきかどうか?
http://betterspecs.org/#subjectには、とに関する情報がsubjectありletます。しかし、私はそれらの違いについてはまだはっきりしていません。さらに、SOの投稿RSpecテストでbefore、let、subjectを使用することに反対する議論は何ですか?subjectまたはを使用しない方が良いと述べましたlet。どこに行こうか?私はとても混乱しています。

4
文字エンコードの問題をテストするための「Loremipsums」ファイルのセットはありますか?
レイアウトについては、有名な「Lorem ipsum」テキストを使用して、どのように表示されるかをテストします。 私が探しているのは、テキストファイルを読み取るときに文字エンコードを処理するいくつかのメソッドをテストするためにJUnitテストで使用できる、いくつかの異なるエンコードでエンコードされたテキストを含むファイルのセットです。 例: 持つISO 8859-1エンコードされたテスト・ファイルおよびWindows-1252エンコードされたテストファイルを。Windowsの-1252は、領域80の違いトリガする必要があり16 9F - 16。つまり、ISO 8859-1と区別するために、この領域の文字が少なくとも1つ含まれている必要があります。 おそらく、テストファイルの最良のセットは、各エンコーディングのテストファイルにすべての文字が一度含まれているものです。しかし、多分私はsthに気づいていません-私たちは皆、このエンコーディングのものが好きですよね?:-) 文字エンコードの問題に関するそのようなテストファイルのセットはありますか?

7
phpunitはモックのコンストラクター引数を回避します
phpunitがモックオブジェクトのコンストラクターを呼び出さなくて済むようにする方法は何ですか?それ以外の場合は、コンストラクター引数としてモックオブジェクト、そのための別のオブジェクトなどが必要になります。APIは次のようになります。 getMock($className, $methods = array(), array $arguments = array(), $mockClassName = '', $callOriginalConstructor = TRUE, $callOriginalClone = TRUE, $callAutoload = TRUE) 動作しません。$callOriginalConstructorfalseに設定されていても、コンストラクター引数について文句を言います。 コンストラクターにはオブジェクトが1つしかなく、それは依存性注入です。ですから、デザインに問題はないと思います。

10
JAX-RS Webサービスをテストしますか?
私は現在、JAX-RS(RESTfulWebサービス用のJavaAPI)ベースのWebサービスの自動テストを作成する方法を探しています。 基本的に、特定の入力を送信し、期待される応答が得られることを確認する方法が必要です。JUnitを介してこれを実行したいのですが、それをどのように実現できるかわかりません。 Webサービスをテストするためにどのようなアプローチを使用していますか? 更新: entzikが指摘したように、Webサービスをビジネスロジックから切り離すことで、ビジネスロジックの単体テストを行うことができます。ただし、正しいHTTPステータスコードなどもテストしたいと思います。

3
Class <T>のパラメータに渡されたnullをMockitoと照合する方法
私はこれらのような方法を持っています: public &lt;T&gt; method(String s, Class&lt;T&gt; t) {...} null他のパラメーターにマッチャーを使用するときに2番目の引数に渡されることを確認する必要があることを確認する必要があります。 @SuppressWarnings("unchecked") verify(client).method(eq("String"), any(Class.class)); しかし、(警告を抑制せずに)より良い方法はありますか?T他のメソッドの戻り値の型を表します。voidこの場合nullは、で渡されます。

7
カルマユニットテスト中に画像の404警告を修正する方法
grunt / karma / phantomjs / jasmineを使用して、ディレクティブの1つ(angularjs)をユニットテストしています。私のテストは正常に実行されます describe('bar foo', function () { beforeEach(inject(function ($rootScope, $compile) { elm = angular.element('&lt;img bar-foo src="img1.png"/&gt;'); scope = $rootScope.$new(); $compile(elm)(); scope.$digest(); })); .... }); しかし、私はこれらの404を取得します WARN [web-server]: 404: /img1.png WARN [web-server]: 404: /img2.png ... それらは何もしませんが、ログ出力にノイズを追加します。これを修正する方法はありますか?(もちろん、カルマのlogLevelを変更せずに、見たいので)

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