2016-07-20 8 views
2

私は試験したいイオン2アプリを書いています。したがって、私はイオン性のネイティブプラグインを模倣する能力が必要です。つまり、アプリケーションがネットワークの変化にどう反応するかをテストしたいのです。 模擬試験用イオン性ネイティブ

import {Network, Connection} from 'ionic-native'; 
Network.connection = Connection.WIFI; 

が、これは( 'Cannot set property connection of function Network() { } which has only a getter')が動作しません。私は、モジュールをインポートし、そのプロパティをオーバーライドするために試してみました。これを模倣する可能性はありますか?

答えて

1

この問題は、hereで議論されており、おそらく静的メソッドを持つクラスは、注射可能サービスに置き換えられます。

0

これは良いアプローチかどうかわかりませんが、コンポーネントのプロパティをIonic Nativeのオブジェクトのインスタンスに設定することです。テストするときは、このプロパティをモックでオーバーライドします。 appversionと例:

component.ts

import { AppVersion } from 'ionic-native'; 
export class YourComponent { 
    public appVersion: any = AppVersion; 
    //etc 
} 
component.spec.tsで

import { AppVersionMock } from '../../mocks'; 
describe('YourComponent',() => { 
    //creates fixtures, get instance, etc... 

    //in some assertion 
    it('should have new version number', fakeAsync(() => { 
    fixture.componentInstance.appVersion = new AppVersionMock() 
    }) 
}) 

とmocks.ts

export class AppVersionMock { 
    version = 20; 
    public getVersionNumber() { 
    return new Promise((resolve, reject) => { 
     resolve(this.version) 
    }); 
    } 
} 
のようなものを持っています