2017-05-30 11 views
0

私は現在、Angular4 Webアプリケーションを開発中です。パブリック静的メソッドのみを持つクラスとパイプの単体テストを作成しようとしています。今私はそれを行うための解決策を見つけていません。コンポーネント、サービスなどで動作するものは、ここでは機能しません。クラスの静的メソッドを呼び出す方法は?

例:クラス

export class StringExtensions { 
    public static firstToLowerCase = (argument: string): string => { 
     return `${ argument.substr(0, 1).toLowerCase() }${ argument.substr(1) }`; 
    } 
} 

例:

import {StringExtensions} from './string-extensions'; 

describe('StringExtensions',() => { 

    let classStringExtensions: StringExtensions; 
    const argument: string = 'ArgumenTas'; 

    beforeEach(() => { 
     classStringExtensions = new StringExtensions(); 
    }); 

    afterEach(() => { 
     classStringExtensions = null; 
    }); 

    it('should ...',() => { 
     expect(classStringExtensions.firstToLowerCase(argument)).toBe('argumenTas'); 
    }); 

}); 

unittestの

を動作していないにErrorMessage:

ERROR in .../string-extensions.spec.ts (17,38): 
Property 'firstToLowerCase' does not exist on type 'StringExtensions'. 

答えて

1

あなたは、インスタンスの静的メソッドを呼び出すので、それは、あなたがする必要がありますタイプ・レベルで静的メンバーにアクセスすると、そのタイプで呼び出されます。

expect(StringExtensions.firstToLowerCase(argument)).toBe('argumenTas'); 

beforeEachafterEachの内部現在のコードも必要ありません。

この質問はタイプスクリプトには一般的であり、どのフレームワークにも固有のものではありません。

+0

ありがとうございました!今私は答えを知っている、それは明らかだ... –

+0

@JessicaM。 - 喜んで助けてください。回答の左側にあるチェックマークを使用して回答としてマークしてください。 – Igor

関連する問題