菜鸟教程小白 发表于 2022-12-13 03:14:56

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


                                            <p><p><strong>有没有办法在运行单元测试时强制使用特定的语言环境?</strong></p>

<p>例如。始终使用 en_US 或强制不使用语言环境,这样就不会加载任何 .lproj 文件。</p>

<p>我的单元测试对设置应用程序(在 iOS 模拟器中)中当前选择的语言很敏感。最好我希望我的单元测试对语言不敏感。</p>

<p>下面是显示问题的单元测试代码</p>

<pre><code>@interface MYGalleryTests : SenTestCase
@end
@implementation MYGalleryTests
-(void)test0 {
    // This test doesn&#39;t work.
    // I get &#39;No pictures&#39; when locale is en_US
    // I get &#39;Ingen billeder&#39; when locale is da_DK
    NSString* actual = ;
    NSString* expected = @&#34;EMPTY_MESSAGE&#34;;
    STAssertEqualObjects(actual, expected, nil);
}
@end


@interface MYGallery : NSObject
+(NSString*)emptyMessage;
@end
@implementation MYGallery
+(NSString*)emptyMessage {
    return NSLocalizedStringFromTable(@&#34;EMPTY_MESSAGE&#34;, @&#34;Gallery&#34;, @&#34;Message shown when gallery is empty&#34;);
}
@end


en.lproj/Gallery.strings
/* Message shown when gallery is empty */
&#34;EMPTY_MESSAGE&#34; = &#34;No pictures&#34;;

da.lproj/Gallery.strings
/* Message shown when gallery is empty */
&#34;EMPTY_MESSAGE&#34; = &#34;Ingen billeder&#34;;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>有一种方法可以在特定的语言环境中运行单元测试,但它不适合单元测试,但它对测试很有用。</p>

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

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

<p>更改单元测试区域设置的一种方法是使用指定的技术<a href="https://stackoverflow.com/a/19325897/211292" rel="noreferrer noopener nofollow">here</a> .但是,该技术使用方法混合,这不适用于 Swift。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用特定语言环境运行单元测试(en_US 或无),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17928990/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17928990/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用特定语言环境运行单元测试(en_US 或无)