タグ付けされた質問 「jasmine」

Jasmineは、JavaScriptコードをテストするための動作駆動型開発(BDD)フレームワークです。Jasmineには外部依存関係はなく、DOMは必要ありません。

3
イスタンブールカバレッジレポートの読み方
私は常にユニットテストにJasmineを使用してきましたが、最近、イスタンブールを使用してコードカバレッジレポートを提供し始めました。つまり、彼らが私に伝えようとしていることの要点はわかりますが、これらの各パーセンテージ(Stmts、Branches、Funcs、Lines)が何を表しているのか本当にわかりません。これまでのところ、グーグル検索では、しっかりした説明/リソースを見つけることができませんでした。 質問:要点はわかりましたが、誰かが適切な説明や適切な説明へのリンクを投稿できますか? 三次質問:コードの特定の部分がカバーされていないことを識別する方法はありますか?これまでのところ、このレポートを実際に確認することなく、基本的に推測しています。 -------------------|-----------|-----------|-----------|-----------| File | % Stmts |% Branches | % Funcs | % Lines | -------------------|-----------|-----------|-----------|-----------| controllers/ | 88.1 | 77.78 | 78.57 | 88.1 | dashboard.js | 88.1 | 77.78 | 78.57 | 88.1 | -------------------|-----------|-----------|-----------|-----------| All files | 88.1 | 77.78 | 78.57 | 88.1 | …

3
React Enzymeが2番目(またはn番目)のノードを見つける
Jasmine Enzymeの浅いレンダリングでReactコンポーネントをテストしています。 この質問のためにここでは簡略化しています... function MyOuterComponent() { return ( <div> ... <MyInnerComponent title="Hello" /> ... <MyInnerComponent title="Good-bye" /> ... </div> ) } MyOuterComponentの2つのインスタンスがMyInnerComponentあり、それぞれで小道具をテストしたいと思います。 最初にテストする方法を知っています。で使用findしていfirstます... expect(component.find('MyInnerComponent').first()).toHaveProp('title', 'Hello'); ただし、の2番目のインスタンスをテストするのに苦労していますMyInnerComponent。 このようなものがうまくいくことを願っていました... expect(component.find('MyInnerComponent').second()).toHaveProp('title', 'Good-bye'); またはこれ... expect(component.find('MyInnerComponent')[1]).toHaveProp('title', 'Good-bye'); しかし、もちろん上記のどちらも機能しません。 私は明らかなことを逃しているように感じます。 しかし、ドキュメントを調べても、類似した例はありません。 誰でも?
128 reactjs  jasmine  enzyme 

12
templateUrlを使用したAngularJSディレクティブの単体テスト
templateUrl定義されているAngularJSディレクティブがあります。私はそれをジャスミンでユニットテストしようとしています。 私のJasmine JavaScriptは、この推奨に従って、次のようになります。 describe('module: my.module', function () { beforeEach(module('my.module')); describe('my-directive directive', function () { var scope, $compile; beforeEach(inject(function (_$rootScope_, _$compile_, $injector) { scope = _$rootScope_; $compile = _$compile_; $httpBackend = $injector.get('$httpBackend'); $httpBackend.whenGET('path/to/template.html').passThrough(); })); describe('test', function () { var element; beforeEach(function () { element = $compile( '<my-directive></my-directive>')(scope); angular.element(document.body).append(element); }); afterEach(function () …


6
JasmineでjQuery AJAXイベントを確認するにはどうすればよいですか?
Jasmineを使用して、基本的なjQuery AJAXリクエストのBDD仕様をいくつか作成しようとしています。現在、Jasmineをスタンドアロンモードで(つまりからSpecRunner.html)使用しています。SpecRunnerを設定して、jqueryおよびその他の.jsファイルをロードしました。以下がうまくいかない理由はありますか?has_returnedは、「ゆっぴ!」アラートは問題なく表示されます。 describe("A jQuery ajax request should be able to fetch...", function() { it("an XML file from the filesystem", function() { $.ajax_get_xml_request = { has_returned : false }; // initiating the AJAX request $.ajax({ type: "GET", url: "addressbook_files/addressbookxml.xml", dataType: "xml", success: function(xml) { alert("yuppi!"); $.ajax_get_xml_request.has_returned = true; } }); // …
114 javascript  jquery  ajax  jasmine  bdd 

7
AngularJSサービスにモックを挿入する
AngularJSサービスを作成しており、それを単体テストしたいと思います。 angular.module('myServiceProvider', ['fooServiceProvider', 'barServiceProvider']). factory('myService', function ($http, fooService, barService) { this.something = function() { // Do something with the injected services }; return this; }); 私のapp.jsファイルにはこれらが登録されています: angular .module('myApp', ['fooServiceProvider','barServiceProvider','myServiceProvider'] ) DIが機能していることをテストできます。 describe("Using the DI framework", function() { beforeEach(module('fooServiceProvider')); beforeEach(module('barServiceProvider')); beforeEach(module('myServiceProvder')); var service; beforeEach(inject(function(fooService, barService, myService) { service=myService; })); it("can be …

1
QUnit対Jasmine?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 7年前休業。 この質問を改善する これら2つのテストフレームワークの主な違いは何ですか? 私はテスト駆動開発にまったく新しく、最初から始めています。

4
JasmineでAngularJSサービスをテストするにはどうすればよいですか?
(ここに関連する質問があります:JasmineテストはAngularJSモジュールを見ません) Angularを起動せずにサービスをテストしたいだけです。 いくつかの例とチュートリアルを見てきましたが、どこにも行きません。 私は3つのファイルしか持っていません: myService.js:AngularJSサービスを定義します test_myService.js:サービスのJasmineテストを定義します。 specRunner.html:通常のジャスミン構成を含むHTMLファイルで、前の2つのファイルとJasmine、Angularjs、angular-mocks.jsをインポートします。 これはサービスのコードです(テストしていないときに期待どおりに機能します)。 var myModule = angular.module('myModule', []); myModule.factory('myService', function(){ var serviceImplementation = {}; serviceImplementation.one = 1; serviceImplementation.two = 2; serviceImplementation.three = 3; return serviceImplementation }); サービスを個別にテストしているので、サービスにアクセスしてメソッドを確認できるはずです。私の質問は、AngularJSをブートストラップせずにテストにサービスを注入するにはどうすればよいですか? たとえば、サービスのメソッドに対して返された値をJasmineで次のようにテストするにはどうすればよいですか。 describe('myService test', function(){ describe('when I call myService.one', function(){ it('returns 1', function(){ myModule = angular.module('myModule'); //something is missing …
107 angularjs  jasmine 

2
ジャスミンスパイの複数の呼び出しに対して異なる戻り値を設定する方法
私がこのような方法をスパイしているとしましょう: spyOn(util, "foo").andReturn(true); テスト中の関数がutil.foo複数回呼び出します。 スパイtrueが最初に呼び出されたときにfalse、2回目に戻ってくるようにすることはできますか?または、これについて別の方法がありますか?

9
ジャスミンで値が「以上」であることをどのようにテストできますか?
数がゼロ以上でなければならないので、私は、値は、小数点(または0)であることを確認したいと 1未満です。 describe('percent',function(){ it('should be a decimal', function() { var percent = insights.percent; expect(percent).toBeGreaterThan(0); expect(percent).toBeLessThan(1); }); }); 「> = 0」を模倣するにはどうすればよいですか?



1
関数が呼び出されていないことをテストするにはどうすればよいですか?
私はルーターをテストしていて、2つの関数があり、最初の関数が呼び出され、2番目の関数が呼び出されなかったかどうかをテストする必要があります。メソッドはありますがtoHaveBeenCalled、関数が呼び出されなかったかどうかをテストするメソッドはありません。どうすればそれをテストできますか? 私はこのようなコードを持っています: var args, controller, router; beforeEach(function() { controller = { foo: function(name, id) { args = [].slice.call(arguments); }, bar: function(name) { } }; spyOn(controller, "foo").and.callThrough(); spyOn(controller, "bar").and.callThrough(); router = new route(); router.match('/foo/bar/{{id}}--{{name}}', controller.foo); router.match('/foo/baz/{{id}}--{{name}}', controller.bar); router.exec('/foo/bar/10--hello'); }); it('foo route shuld be called', function() { expect(controller.foo).toHaveBeenCalled(); }); it('bar route shoud …

5
ジャスミンでオブジェクトの同等性をチェックする
ジャスミンにはマッチャーtoBeとが組み込まれていtoEqualます。このようなオブジェクトがある場合: function Money(amount, currency){ this.amount = amount; this.currency = currency; this.sum = function (money){ return new Money(200, "USD"); } } new Money(200, "USD")合計の結果を比較しようとすると、これらの組み込みマッチャーは期待どおりに機能しません。カスタムequalsメソッドとカスタムマッチャーに基づいて回避策を実装することができましたが、それはかなりの作業のようです。 ジャスミンのオブジェクトを比較する標準的な方法は何ですか?

4
プロパティのサブセットでオブジェクトを比較するためのジャスミンマッチャーはありますか
テスト中の動作に沿って拡張できるオブジェクトがありますが、元のプロパティがまだそこにあることを確認したいと思います。 var example = {'foo':'bar', 'bar':'baz'} var result = extendingPipeline(example) // {'foo':'bar', 'bar':'baz', 'extension': Function} expect(result).toEqual(example) //fails miserably この場合、次の行に沿って通過するマッチャーが欲しいのですが。 expect(result).toInclude(example) カスタムマッチャーを作成できることは知っていますが、これは非常に一般的な問題であるため、解決策はすでに存在しているはずです。どこで探すべきですか?

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