gpt4 book ai didi

ios - 使用特定语言环境(en_US 或无)运行单元测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:46:14 26 4
gpt4 key购买 nike

有没有办法在运行单元测试时强制使用特定语言环境?

例如。始终使用 en_US 或强制无语言环境,以便不加载任何 .lproj 文件。

我的单元测试对设置应用程序(在 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";

最佳答案

有一种方法可以在特定语言环境中运行单元测试,但这对单元测试不利,但对测试很有用。

在 Xcode 中,转到产品 -> 方案 -> 编辑方案... -> 选择测试 -> 选项,然后将“应用程序语言”弹出窗口设置为所需的语言。然后您的单元测试将以指定的语言运行。您可以使用它来测试特定语言环境的代码。您可以使用它来获得比实际运行您的应用程序更快的测试周转时间,特别是如果您只运行特定的单元测试子集。但是,它通常对单元测试没有用,因为您只能使用指定的语言。

此外,这样做会修改您的 .xcscheme,因此您需要在完成后将其改回。

更改单元测试语言环境的一种方法是使用指定的技术 here .但是,该技术使用方法调配,这不适用于 Swift。

关于ios - 使用特定语言环境(en_US 或无)运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17928990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com