All'interno di un componente Spring ho una dichiarazione @PostConstruct
. Simile al di sotto:Come disabilitare @PostConstruct in primavera durante il test
@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 .....
}
Durante i test di unità che non vorrebbe avere la funzione @PostConstruct
chiamata, c'è un modo per raccontare primavera di non fare l'elaborazione post? O c'è una migliore annotazione per chiamare un metodo di inizializzazione su una classe che non sta testando?
È FileListService che si desidera testare o altre classi a seconda di esso? – mrembisz
Il servizio FileList è richiesto da un servizio Web che è in fase di test - FileWSTest di classe pubblica estende JerseyTest, che utilizza il contenitore web grizzly – Ben
È possibile prenderlo in giro usando una sottoclasse o troncare la parte di inizializzazione. È possibile inserire il mock nel pacchetto scansionato solo per i test e contrassegnarlo come '@ Primario'. – mrembisz