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

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

6
Angular uiルーターユニットテスト(状態からURL)
Angularuiルーター上に構築されたアプリケーションでルーターの単体テストに問題が発生しています。私がテストしたいのは、状態遷移がURLを適切に変更するかどうかです(後でもっと複雑なテストがありますが、ここから始めます)。 これが私のアプリケーションコードの関連部分です: angular.module('scrapbooks') .config( function($stateProvider){ $stateProvider.state('splash', { url: "/splash/", templateUrl: "/app/splash/splash.tpl.html", controller: "SplashCtrl" }) }) そしてテストコード: it("should change to the splash state", function(){ inject(function($state, $rootScope){ $rootScope.$apply(function(){ $state.go("splash"); }); expect($state.current.name).to.equal("splash"); }) }) Stackoverflow(および公式のUIルーターテストコード)に関する同様の質問は、$ state.go呼び出しを$ applyでラップするだけで十分であることを示唆しています。しかし、私はそれをしました、そして、状態はまだ更新されていません。$ state.current.nameは空のままです。

4
AngularJSで分離スコープディレクティブを単体テストする方法
AngularJSで分離スコープを単体テストするための良い方法は何ですか ユニットテストを示すJSFiddle ディレクティブスニペット scope: {name: '=myGreet'}, link: function (scope, element, attrs) { //show the initial state greet(element, scope[attrs.myGreet]); //listen for changes in the model scope.$watch(attrs.myGreet, function (name) { greet(element, name); }); } ディレクティブが変更をリッスンしていることを確認したい-これは分離されたスコープでは機能しません: it('should watch for changes in the model', function () { var elm; //arrange spyOn(scope, '$watch'); //act elm …

4
Visual Studio2008テストフレームワークで配列が等しいことを表明します
2つの配列が等しい(つまり、要素の数が同じで、各要素が同じである)ことを単体テストで確認する簡単な方法はありますか? Javaでは、を使用しますがassertArrayEquals (foo, bar);、C#に相当するものはないようです。試しましたAssert.AreEqual(new string[]{"a", "b"}, MyFunc("ab"));が、関数が「a」、「b」の配列を返しても、チェックは失敗します これは、組み込みの単体テストフレームワークを備えたVisual Studio 2008 TeamSuiteを使用しています。

1
ERBでERBタグをエスケープするにはどうすればよいですか
私は簡単なfixture.ymlファイルを持っています: label: body: "<%= variable %>" 問題は、ERBコードがフィクスチャのロードの一部として解析されるのに対し、実際には本体を文字通り「<%=変数%>」(補間されていない)にしたいということです。 ERBタグをエスケープするにはどうすればよいですか?

13
Chaiを非同期Mochaテストで動作させる方法はありますか?
Browser Runnerを使用してMochaでいくつかの非同期テストを実行しており、Chaiのexpectスタイルアサーションを使用しようとしています。 window.expect = chai.expect; describe('my test', function() { it('should do something', function (done) { setTimeout(function () { expect(true).to.equal(false); }, 100); } } これは通常の失敗したアサーションメッセージを表示しませんが、代わりに次のようになります。 Error: the string "Uncaught AssertionError: expected true to equal false" was thrown, throw an Error :) at Runner.fail (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3475:11) at Runner.uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3748:8) at uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3778:10) したがって、明らかにエラーをキャッチしているだけで、正しく表示されていません。これを行う方法はありますか?エラーオブジェクトで「完了」と呼ぶこともできると思いますが、チャイのようなエレガンスをすべて失い、非常に不格好になります...

8
自動テストのセットに対してsetUpを1回だけ実行します
私のPythonバージョンは2.6です。 すべてのテストに必要なことを行うので、テストsetUpメソッドを1回だけ実行したいと思います。 私のアイデアは、最初の実行後に「true」に設定されるブール変数を作成し、セットアップメソッドへの複数の呼び出しを無効にすることでした。 class mySelTest(unittest.TestCase): setup_done = False def setUp(self): print str(self.setup_done) if self.setup_done: return self.setup_done = True print str(self.setup_done) 出力: False True --- Test 1 --- False True --- Test 2 --- なぜこれが機能しないのですか?私は何かを逃しましたか?

13
プログラマーはどのようにプロジェクトに協力しますか?
私はいつも一人でプログラムしました、私はまだ学生なので、他の誰かとプログラムしたことはありません、私は以前にバージョン管理システムさえ使用していません。 私は現在、プログラマーが会社のソフトウェアでどのように協力するかについての知識を必要とするプロジェクトに取り組んでいます。 ソフトウェアはどのようにコンパイルされますか?バージョン管理システムからですか?個々のプログラマーによるものですか?定期的ですか?誰かが何かを作ることを決心したときですか?それが「機能する」ことを確認するために行われるテストはありますか? 何でもかまいません。

9
PythonユニットテストのassertAlmostEqual-floatのコレクションのテスト
PythonのユニットテストフレームワークのassertAlmostEqual(x、y)メソッドは、とが浮動小数点数であると仮定してほぼ等しいかどうかをテストします。xy の問題assertAlmostEqual()は、フロートでのみ機能することです。assertAlmostEqual()フロートのリスト、フロートのセット、フロートの辞書、フロートのタプル、フロートのタプルのリスト、フロートのリストのセットなどで機能するような方法を探しています。 たとえば、みましょうx = 0.1234567890、y = 0.1234567891。xそしてy、彼らは最後のものを除き、それぞれ、すべての桁に同意するので、ほぼ等しくなっています。したがってself.assertAlmostEqual(x, y)あるTrueので、assertAlmostEqual()フロートのための作品。 assertAlmostEquals()次の呼び出しも評価する、より一般的なものを探していますTrue。 self.assertAlmostEqual_generic([x, x, x], [y, y, y])。 self.assertAlmostEqual_generic({1: x, 2: x, 3: x}, {1: y, 2: y, 3: y})。 self.assertAlmostEqual_generic([(x,x)], [(y,y)])。 そのような方法はありますか、それとも自分で実装する必要がありますか? 明確化: assertAlmostEquals()名前付きのオプションのパラメータがplacesあり、小数点以下の桁数に丸められた差を計算することによって数値が比較されますplaces。デフォルトではplaces=7、したがって、self.assertAlmostEqual(0.5, 0.4)はFalseですが、self.assertAlmostEqual(0.12345678, 0.12345679)はTrueです。私の投機assertAlmostEqual_generic()は同じ機能を持っているはずです。 2つのリストがまったく同じ順序でほぼ等しい数である場合、それらはほぼ等しいと見なされます。正式には、for i in range(n): self.assertAlmostEqual(list1[i], list2[i])。 同様に、2つのセットは、(各セットに順序を割り当てることによって)ほぼ等しいリストに変換できる場合、ほぼ等しいと見なされます。 同様に、各辞書のキーセットが他の辞書のキーセットとほぼ等しい場合、2つの辞書はほぼ等しいと見なされ、そのようなほぼ等しいキーペアごとに、対応するほぼ等しい値があります。 一般的に:2つのコレクションは、互いにほぼ等しい対応するフロートを除いて、等しい場合はほぼ等しいと見なします。言い換えれば、私は実際にオブジェクトを比較したいのですが、途中でフロートを比較するときは精度が低く(カスタマイズされています)。


2
Djangoのmanage.pyテストコマンド中に実行されたテストを確認する方法
Djangoのmanage.py testコマンドを使用してテストの実行が終了すると、合格したテストの数だけがコンソールに出力されます。 (virtualenv) G:\Project\>python manage.py test Creating test database for alias 'default'... True .. ---------------------------------------------------------------------- Ran 2 tests in 0.017s OK Destroying test database for alias 'default'... 見る方法はありますか: 実際に実行されたテスト どのモジュールから どのような順序で ドキュメントに解決策が見つかりませんでした。

3
Mockitoはローカルで最終クラスをモックしますが、ジェンキンスで失敗します
静的メソッドのユニットテストをいくつか作成しました。staticメソッドは引数を1つだけ取ります。引数の型は最終クラスです。コードに関して: public class Utility { public static Optional<String> getName(Customer customer) { // method's body. } } public final class Customer { // class definition } そのため、UtilityクラスUtilityTestsについて、このメソッドのテストを記述したテストクラスを作成しましたgetName。ユニットテストフレームワークはTestNGであり、使用されるモックライブラリはMockitoです。したがって、一般的なテストの構造は次のとおりです。 public class UtilityTests { @Test public void getNameTest() { // Arrange Customer customerMock = Mockito.mock(Customer.class); Mockito.when(...).thenReturn(...); // Act Optional<String> name = Utility.getName(customerMock); // Assert …

1
VueコンポジションAPIコンポーネントでjestを使用してユニットテストを行う方法
私はvue.jsの私の構成APIコンポーネントのためにjestでユニットテストを書いています。 しかし、コンポジションAPIのsetup()の関数にアクセスできません。 Indicator.vue <template> <div class="d-flex flex-column justify-content-center align-content-center"> <ul class="indicator-menu d-flex justify-content-center"> <li v-for="step in steps" :key="step"> <a href="#" @click="updateValue(step)" :class="activeClass(step, current)"> </a> </li> </ul> <div class="indicator-caption d-flex justify-content-center"> step <span> {{ current }}</span> from <span> {{ steps }}</span> </div> </div> </template> <script lang="ts"> import {createComponent} from '@vue/composition-api'; export …

1
失敗した.NET単体テストをPowerShellスクリプトまたは.NETから再実行する
Azure DevopsのVisual Studio Testタスクには、非常に優れた機能があり、失敗した単体テストを再試行できます。これは、テスト時間が長く、不安定なテストがいくつかある場合に優れた機能です。Azure Devopsのこのテストタスクは、xUnit、NUnit、MSTestなどのさまざまなテストプラットフォームで機能します。(したがって、.NET用に書かれたテスト) スクリプトから同じ動作を取得することは可能ですか?私はxUnitまたはNUnitを好み、PowerShellでスクリプトを実行します。 xUnitの場合-method "name": 指定されたテストメソッドを実行します(完全に指定することも、ワイルドカードを使用することもできます(例: 'MyNamespace.MyClass.MyTestMethod'または '* .MyTestMethod')。複数回指定した場合、OR操作として機能します。 NUnitには--where=EXPRESSION構文ソースがあります。 実行するテストを示す式。演算子==、!=、=〜および!〜を使用して実際の値と比較するテスト名、クラス、メソッド、カテゴリ、またはプロパティを指定できます。構文の詳細については、テスト選択言語を参照してください。 しかし、xUnitまたはNUnitの失敗したテストを収集してすべてを機能させる方法はわかりません。 もちろん、不安定なテストを修正する方が良いでしょうが、それは時々それほど簡単ではありません。 更新:から実行しています。NET / C#(PowerShellでトリガーされる可能性があります)も許容されます

2
Java-ユニットテスト中にリソースファイルパスをテストファイルにスワップする方法
いくつかの設定を持つリソースファイルがあります。このファイルから設定をロードするResourceLoaderクラスがあります。このクラスは現在、熱心にインスタンス化されたシングルトンクラスです。このクラスがロードされるとすぐに、ファイル(別のクラスの定数フィールドとして保存されているファイルパス)から設定を読み取ります。これらの設定の一部は、単体テストには適していません。たとえば、このファイルにはスレッドのスリープ時間があり、これは製品コードでは数時間になる場合がありますが、単体テストでは数ミリ秒にしたいと考えています。そのため、値のセットが異なる別のテストリソースファイルがあります。私の質問は、単体テスト中にメインのリソースファイルをこのテストファイルと交換するにはどうすればよいですか?プロジェクトはMavenプロジェクトであり、テストフレームワークとしてtestngを使用しています。これらは私のアプローチの一部です @BeforeSuiteを使用してFilePath定数変数を変更し、テストファイルを指すようにし、@ AfterSuiteを使用して元のファイルを指すようにします。これは機能しているようですが、ResourceLoaderクラスは熱心にインスタンス化されているため、ResourceLoaderクラスがロードされる前に@BeforeSuiteメソッドが常に実行される保証はなく、ファイルパスが変更される前に古いプロパティがロードされる可能性があります。ほとんどのコンパイラーは、必要な場合にのみクラスをロードしますが、これがJava仕様の要件であるかどうかはわかりません。したがって、理論的には、これはすべてのJavaコンパイラで機能するとは限りません。 リソースファイルのパスをコマンドライン引数として渡します。pomのsurefire構成でコマンドライン引数としてテストリソースファイルパスを追加できます。これは少し過剰に見えます。 1.のアプローチを使用して、ResourceLoaderを遅延インスタンス化します。これにより、ResourceLoader.getInstance()。getProperty(..)への最初の呼び出しの前に@BeforeMethodが呼び出された場合、ResourceLoaderが正しいファイルをロードすることが保証されます。これは最初の2つのアプローチよりも優れているようですが、シングルトンクラスを遅延インスタンス化すると、列挙型などの単純なパターンを使用できないため、醜くなります(熱心なインスタンス化の場合のように)。 これは一般的なシナリオのようですが、最も一般的な方法は何ですか?

3
テストクラスをモックしてスパイするときにnullポインタ例外が発生する
Android Studio 3.5.3 Kotlin 1.3 いくつかの簡単なコードをテストしようとしていますが、次の例外が発生し続けます。 IllegalStateException: gsonWrapper.fromJson<Map…ring, String>>() {}.type) must not be null 私はスパイを使用して、戻り値をあざけるので、nullを返します。エラーパスをテストしたいので。 私が私のスタブで何か悪いことをしているかどうかわからない。しかし、この例外を解決できないようです。 ラッパークラスを使用してgson実装をラップし、テストでこれをスパイする public class GsonWrapper implements IGsonWrapper { private Gson gson; public GsonWrapper(Gson gson) { this.gson = gson; } @Override public <T> T fromJson(String json, Type typeOf) { return gson.fromJson(json, typeOf); } } テスト中の私のクラスの実装 class …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.