2016-03-28 27 views
2

abstractクラスは実装済みのクラスが少なく、abstractメソッドはほとんど実装されていません。 私はprotectedメソッドのいくつかのテストを書こうとしています。TypeScriptの抽象クラスの拡張匿名クラスを作成

これらは外部の拡張クラスでも利用できないため、私は自分のものを拡張して検証/模擬できるanonymous Test classを作りたいと思います。

export abstract class AbsClass implements AbsInterface { 

    protected extract(filter: string) { 
    //some implemented code to test 
    } 

    abstract someMethod(); 
} 

私はこの前に実行してきました。このanonymously

export class TestClass extends AbsClass { 
    public testExtract(){ 
     //call super.extract and verify result 
    } 
} 
+0

私はあなたが求めているのかわからないんだけど。 'TestClass'は' abstract someMethod'を実装していないので無効です。 – Aaron

+0

@Aaron、私はその方法を模擬したり、いくつかのテストコードで実装します。 – Reddy

+0

私はまだそれを取得しません...抽象メソッドを実装せずに抽象クラスを拡張する方法を尋ねていますか?表示されたコードのどの部分があなたのために働いていないのですか?あなたはそれがどのように機能すると思いますか? – Aaron

答えて

1

のようなものを作成する方法を把握することはできませんよ。エクスポート/抽象的なキーワードが相互に干渉しているようです。私はクラスを定義し、これを回避するために別の行にエクスポートしなければなりませんでした。

例:

abstract class BaseClass {} 

export default BaseClass 
+0

'export abstract'が動作するはずです。 'export default abstract'は残念なことに動作しません。 – Aaron

+0

正しいですが、私は、タイトルの「匿名」性が「デフォルト」を示していると想定していましたが、そうではないかもしれません。 – ArcSine

+0

ああ、そうかもしれない。私はそれを推測したことはありませんでした。 :)おそらく、あなたはReddyの例を提供することができますか? – Aaron

関連する問題