をトリミングして、私は注釈を持っている:Javaは、文字とJava TestNGのテストの上に注釈を読む空白
public String[] id() default {};
とC26603
と:TestInfo
はちょうどid() as String array
を持っているインタフェースです
@TestInfo(id={ " C26603", " C10047" })
C10047
は私が割り当てたテストIDです。ここ
テスト構造は、(例えば)のように見える方法である:
CASE 1:
@TestInfo(id={ " C26603", " C10047" })
public void testDoSomething() {
Assert.assertTrue(false);
}
同様よりクリーナケースは次のようになります。
ケース2:
@TestInfo(id={ "C26603", "C10047" })
このケース2は、ケース1よりも明らかです。このケース2では、テストIDに空白がありません。 これらのIDはどのように取得し、最初にそのC文字が含まれていないことを確認してください。たとえば、最初のIDには26603
、2番目には10047
が必要です。 id配列にはいくつかのスペースがあります(引用符で囲みます)。私はそのすべて(空白のような)をトリミングし、ちょうどIDを取得したい。私は現在、各IDを処理するためにfor loop
を適用しています。一度純粋な数を取得すると、私は第三者API呼び出しを行いたい(APIは入力として純粋な数を期待しています。ここで
は、私が試したものです:
:TestInfo annotation = method.getAnnotation(TestInfo.class);
if(annotation!=null) {
for(String test_id: annotation.id()) {
//check if id is null or empty
if (test_id !=null && !test_id.isEmpty()) {
//remove white spaces and check if id = "C1234" or id = "1234"
if(Character.isLetter(test_id.trim().charAt(0))) {
test_id = test_id.substring(1);
}
System.out.println(test_id);
System.out.println(test_id.trim());
}
}
}
コードの上に私にそれはケース2
CASE 3のために働く場合1. C26603
とnot 26603
を与えます
@TestInfo(id={ " 26603", " 10047" })
この場合、開始文字としてCはありませんtest idのactorなので、関数は空白を整えて先に進むほどスマートでなければなりません。
私はあなたのプロフィールで簡単に見ました。あなたはかなり新しいユーザーですから、あなたは[this](http://stackoverflow.com/help/someone-answers)を見ることができますか?人を助けるために人々に報いるなら、あなたはより良い経験をするでしょう。 –
これを覚えておいてください。 –