Есть ли способ принудительно установить определенный язык при запуске unittests?Запускать unittests с определенной локалью (en_US или none)
Например. всегда используйте en_US или не создавайте локаль, чтобы ни один из файлов .lproj не загружался.
Мой unittest чувствителен к выбранному в данный момент языку в приложении «Настройки» (в iOS Simulator). Я предпочитаю, чтобы мои собеседники не были чувствительны к языку.
Ниже мой UnitTest код, который показывает проблему
@interface MYGalleryTests : SenTestCase
@end
@implementation MYGalleryTests
-(void)test0 {
// This test doesn't work.
// I get 'No pictures' when locale is en_US
// I get 'Ingen billeder' when locale is da_DK
NSString* actual = [MYGallery emptyMessage];
NSString* expected = @"EMPTY_MESSAGE";
STAssertEqualObjects(actual, expected, nil);
}
@end
@interface MYGallery : NSObject
+(NSString*)emptyMessage;
@end
@implementation MYGallery
+(NSString*)emptyMessage {
return NSLocalizedStringFromTable(@"EMPTY_MESSAGE", @"Gallery", @"Message shown when gallery is empty");
}
@end
en.lproj/Gallery.strings
/* Message shown when gallery is empty */
"EMPTY_MESSAGE" = "No pictures";
da.lproj/Gallery.strings
/* Message shown when gallery is empty */
"EMPTY_MESSAGE" = "Ingen billeder";
Ознакомьтесь с http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language – robinkunde
Этот ответ является способом решения проблемы: https: // stackoverflow .com/а/19325897/211292 – ThomasW