在Spring組件中我有一個@PostConstruct
語句。類似如下:如何在測試期間在Spring中禁用@PostConstruct
@Singleton
@Component("filelist")
public class FileListService extends BaseService {
private List listOfFiles = new Arrays.list();
//some other functions
@PostConstruct
public void populate() {
for (File f : FileUtils.listFiles(new File(SystemUtils.JAVA_IO_TMPDIR), new String[]{"txt"},true)){
listOfFiles.add(f.getName());
}
}
@Override
public long count() throws DataSourceException {
return listOfFiles.size();
}
// more methods .....
}
在單元測試我不希望有@PostConstruct
函數調用,是有沒有辦法告訴春天不要做後期處理?或者是否有更好的註釋來調用非測試類的啓動方法?
它是FileListService你想測試或取決於它的其他類嗎? – mrembisz
正在測試的Web服務需要FileListService - 公共類FileWSTest擴展了正在使用灰熊Web容器的JerseyTest – Ben
您可以使用子類來模擬它,也可以將初始化部分分解出來。您可以將模擬程序放在掃描僅用於測試的包中,並將其標記爲'@ Primary'。 – mrembisz