有沒有在運行unittests時強制特定語言環境的方法?運行具有特定語言環境的單元測試(en_US或none)
例如,總是使用en_US或強制任何語言環境,這樣就不會加載任何.lproj文件。
我的單元測試對Settings應用程序中的當前所選語言(在iOS模擬器中)很敏感。最好我希望我的單元測試不要對語言敏感。
下面是我的單元測試代碼,顯示問題
@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 /一個/211292分之19325897 – ThomasW