2

Spring Shellベースのアプリケーションといくつかのスクリプトがあります。スクリプトの実行中に何らかの例外/エラーが発生した場合にテストが失敗するように、JUnit テストでスクリプトを実行する簡単な方法はありますか?

テストの目的は、すべての正しいスクリプトがエラーなしで実行されることを確認することです。

更新 1:

JUnit でスクリプトを実行するための小さなヘルパー クラスを次に示します。

import org.apache.commons.io.FileUtils;
import org.springframework.shell.Bootstrap;
import org.springframework.shell.core.CommandResult;
import org.springframework.shell.core.JLineShellComponent;

import java.io.File;
import java.io.IOException;
import java.util.List;

import static org.fest.assertions.api.Assertions.*;

public class ScriptRunner {
  public void runScript(final File file) throws IOException 
  {
    final Bootstrap bootstrap = new Bootstrap();
    final JLineShellComponent shell = bootstrap.getJLineShellComponent();

    final List<String> lines = FileUtils.readLines(file);
    for (final String line : lines) {
      execVerify(line, shell);
    }   
  }
  private void execVerify(final String command, final JLineShellComponent shell) {
    final CommandResult result = shell.executeCommand(command);
    assertThat(result.isSuccess()).isTrue();
  }

}
4

1 に答える 1

1

のインスタンスを作成し、そこから をBootstrap取得しshellてから(コマンドexecuteCommand()を含めて) その上に置くことができます。shell

このために Spring XD で行われていることに興味があるかもしれません: https://github.com/spring-projects/spring-xd/blob/master/spring-xd-shell/src/test/java/org/springframework/ xd/shell/AbstractShellIntegrationTest.java (ただし、XD 固有の詳細が多数あります)

于 2015-03-05T09:33:00.247 に答える