我有一個我想測試的Spring Batch的文件處理程序。我如何模擬SpringApplication.run
SpringApplication.run()
是,我想驗證傳遞給它的參數的靜態方法。
這是否意味着我需要下井PowerMock路徑或者是有什麼在springframework的,使我對此進行測試?
public File handleFile(File file) {
// Start the Batch Process and set the inputFile parameter
String[] args = {"--inputFile=" + file.getAbsolutePath()};
SpringApplication.run(InitialFileBatchApplication.class, args);
return null;
}
我測試類具有以下注釋這似乎並不奏效:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@SpringBootTest
@PrepareForTest(SpringApplication.class)
我缺少什麼?
越來越引發的異常是:
java.lang.IllegalStateException:無法用名org.springframework.boot.SpringApplication改造類。原因:找不到 org.springframework.web.context.support.StandardServletEnvironment
當@PrepareForTest(SpringApplication.class)
處理髮生這種情況。我正在測試Spring Batch應用程序,所以沒有Web環境,我也添加了。
@SpringBootTest(webEnvironment=WebEnvironment.NONE)
Idealling嘲諷SpringApplication.run是我想做的事情,但這並不意味着我應該區別architecturing該類使其可測試。從我的測試課,我現在有以下注釋,但仍然得到上述例外。 @RunWith(PowerMockRunner.class) @PowerMockRunnerDelegate(SpringRunner.class) @PrepareForTest(SpringApplication.class) @SpringBootTest(webEnvironment = WebEnvironment.NONE) @TestPropertySource(屬性= {「spring.batch.job.enabled =假「}) –