2016-09-09 13 views
1

サービスの単体テストでは、サービススタブ内にアサートを入れています。受け入れ/統合テスト中にスタブ/モックエバーサービス内でアサートする

ユニット-test.js

let fooServiceStub = Ember.Object.extend({ 
    fooMethod(bar) { 
     this.assert.ok(bar, 'fooMethod called with bar'); 
    } 
}); 

... 

test('blah', function(assert) { 
    assert.expect(1); 
    let stubFooService = fooServiceStub.create({ assert }); 
    let fooService = this.subject({ 
     fooService: stubFooService 
    }); 

    fooService.fooMethod('data'); 
}); 

受諾/統合テストのための可能なスタブサービスの内部アサートですか?

私が取り組んでいる問題は、受け入れ/統合テストでは、サービスが注入される方法が単体テストと異なることです。

受け入れ-test.js

let fooServiceStub = Ember.Service.extend({ 
    fooMethod(bar) { 
     return 'baz'; 
    } 
}); 

.... 

beforeEach: function() { 
    this.application.register('service:mockFooService', fooServiceStub); 
    this.application.inject('controller', 'fooService', 'service:mockFooService'); 
} 

私は、このようなスタブに「アサート」オブジェクトに渡すための方法を発見していません。

私にとっては、これは受け入れテスト中に行うことが望ましいです。サービスが中断され、受け入れテストでは模倣するのがむしろ複雑なものがあり、私は自分のサービスを再テストしたくありません。私は、予想されるサービスコールがトリガーされたことを確認したいだけです。

答えて

2

あなたは自分のテストでこのような何かを行うことができます。

this.set('fooService.FooMethod', bar => assert.ok(bar, 'bla')); 
+0

this.setは、受け入れテストの内部で定義されていません。コンポーネントの統合テストでは機能していましたが、受入れテストでは機能しませんでした。 – myartsev

関連する問題