2

JDT の IType および IMethod インターフェイスを使用するプラグインの単体テストを作成しています。単体テストを作成するには、そのようなインターフェイスをインスタンス化する必要があります。この質問への回答 は、ASTモデルの作成方法を示していますが、それをJavaモデルに変換する方法がわかりません?

私のコードは次のようになります。

String source = 

  "package com.test\n" +
  "\n" +
  "import com.test.something;" + 
  "\n" +
  "public class Class{\n" +
  "int sum(int a, int b)\n" +
  "}\n";

ASTParser parser = ASTParser.newParser(AST.JLS4);
parser.setSource(source.toCharArray());
CompilationUnit unit = (CompilationUnit) parser.createAST(null);

のインスタンスがありますが、オブジェクトCompilationUnitにアクセスできるように ICompilationUInit のインスタンスが必要です。IMethodIType

4

3 に答える 3

2

これは実際には不可能です。 ICompilationUnits は Java モデルの一部です。これは、どこかの Java プロジェクトの一部であり、完全なクラスパス、パッケージ、パッケージ ルートなどを持っていることを意味します。接続されていないテキストの解析ツリーを作成するだけです。任意の Java プロジェクトに。

目標が何であるかをより具体的に説明できる場合は、IType および IMethod インスタンスが実際には必要ない場合があります。

または、これらの型のインスタンスが本当に必要な場合は、 を生成しIProject、それに Java 性質を追加してから、ファイルを設定する必要があります。最善の策は、JDT テスト インフラストラクチャがどのように機能するかを確認することです。

このファイルを見てください: https://github.com/eclipse/eclipse.jdt.core/blob/master/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests /builder/TestingEnvironment.java

テストフレームワーク全体でどのように使用されるか。

于 2013-04-05T20:55:02.873 に答える