Posts

October 24, 2011

Accedere alle risorse del bundle nei test

Per accedere ai file contenuti nel bundle di un’applicazione iOS, in genere si usa una cosa del tipo:

 NSBundle *bundle = [NSBundle mainBundle];

Purtroppo, nei test, se si prova a usare il mainBundle per ottenere il path di una risorsa,

 [bundle pathForResource:@"aResource"  ofType:@"aType"];

si ottiene un bel NULL.

Penso che questo succeda perché il mainBundle è il bundle associato alla directory dell’applicazione correntemente in esecuzione, che non è la nostra applicazione, ma il tester.

Per ovviare a questo problema, si può usare

 NSBundle *bundle = [NSBundle  bundleForClass:[MyTestedClass  class]];

che restituisce il bundle associato alla directory che contiene la classe passata.

Passando la classe testata, si otterrà il bundle associato alla directory che contiene tutte le risorse usate nel test.