2017-02-03 13 views
2

私が欲しいもの: EclipseエディタプラグインのJUnitテストを記述したいと思います。このため、私のTextEditor拡張のインスタンスを設定したいと思います。次に、このTextEditorの入力をStringから設定して、Stringの内容がエディタインスタンスの入力になるようにします。それから私はいくつかのテストを実行し、エディタがエラーなどをマークすることを主張したい。EclipseプラグインでTextEditorの文字列入力をプログラムで設定する方法は?

私が失敗した場合:文字列からエディタの入力を設定する方法がわかりません。エディターが行う必要がある唯一の機能はsetInput(IEditorInput input)ですが、内容としてストリングを使用してÌEditorInputを作成する方法はわかりません。

エディタの入力を指定の文字列に設定する方法はありますか?

+0

エディタの働きの非常に多くは、エディタ入力の正確な詳細に依存しています。例えば、ほとんどのエディタは 'IEditorInput'ではなく' IFileEditorInput'を持っています。実際にエディタを正しくテストするには、ワークスペースファイルを与える必要があります。 –

+0

と入力として与えられた文字列を含むワークスペースファイルを作成するにはどうすればよいですか? – Noltibus

+0

'IFile'の' create'メソッドを使います。 –

答えて

2

Gregとして(ワークスペース)ファイルを作成するか、特殊なIEditorInputを実装して、この入力でテキストエディタを開くことができます。例えば

// uninteresting methods left out for brevity 

class StringEditorInput implements IStorageEditorInput { 
    @Override 
    public boolean exists() { 
    return true; 
    } 

    @Override 
    public IStorage getStorage() throws CoreException { 
    return new StringStorage(); 
    } 
} 

class StringStorage implements IStorage { 
    @Override 
    public InputStream getContents() throws CoreException { 
    return new ByteArrayInputStream("Hello editor!".getBytes(StandardCharsets.UTF_8)); 
    } 
} 

String editorId = "org.eclipse.ui.DefaultTextEditor"; 
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
IEditorPart editor = IDE.openEditor(page , new StringEditorInput(), editorId); 
関連する問題