sto creando una suite di test per la mia applicazione Android e avere questo metodo di configurazioneesecuzione Android test setup() viene chiamato più volte
private static final String TAG_NAME = "TESTING_SUITE";
public TestingMusicDAO musicDAO;
public List<Song> songs;
public Instrumentation instr;
MusicService musicService;
@Override
public void setUp() throws Exception {
instr = this.getInstrumentation();
Log.d(TAG_NAME, "Setting up testing songs");
musicDAO = new TestingMusicDAO(instr.getContext());
musicService = new MusicServiceImpl(musicDAO);
musicDAO.getAllSongsFromFile();
songs = musicDAO.getAllSongs();
for(Song song : songs)
Log.d(TAG_NAME, song.toString());
}
E poi questi test che vengono creati da uno strumento di pitone da un file di testo
public void test1() {
List<Song> testPlaylist;
String testArtist = ("The Beatles");
String actualArtist = ("TheBeatles");
testPlaylist = testingPlaySongsByKeyword(testArtist);
if(testPlaylist.isEmpty()){
fail("No Songs Were Found");
} else {
for(Song loopsongs : testPlaylist){
if (!(loopsongs.getArtist().equals(actualArtist))){
fail("Song Doesnt Contain the artist" + actualArtist + "... Contains ->" + loopsongs.getArtist());
}
}
}
}
e ogni volta che uno di questi viene chiamato, la musica viene rigenerata. Come posso impedire che il metodo di installazione venga chiamato
Quindi vorrei creare un costruttore della classe di test? –
THAT è l'unica funzione che so che sarebbe stata eseguita una sola volta. Stai meglio scrivendo i test come si aspetta jUnit- alla fine sarà meno doloroso. –
Va bene, solo lentamente, generato un database per ciascun test –