gpt4 book ai didi

objective-c - 在不启动模拟器的情况下在 Xcode 4 中运行逻辑测试

转载 作者:太空狗 更新时间:2023-10-30 03:10:09 25 4
gpt4 key购买 nike

我想在不启动模拟器的情况下使用 OCUnit 在 Xcode 4 中运行测试。请不要试图说服我我做错了单元测试或类似的事情。我喜欢以传统方式进行 TDD:在测试中为类编写 API,然后让类通过测试。我将编写在模拟器中运行的端到端的单独测试。

如果没有办法做到这一点,那么有人可以告诉我如何让测试工具不实例化整个应用程序吗?我的应用程序是事件驱动的,它会在启动时发送一堆事件,这让我的测试变得一团糟。

最佳答案

Please can someone tell me how to have the test harness not instantiate the whole app? My app is event driven, and it sends a bunch of events through when it starts up that mess with my tests.

我使用 Xcode 4 的内置测试。应用程序实例化可能看起来很痛苦,但正如我在 Xcode Unit Testing: The Good, the Bad, the Ugly 上写的那样,它使得编写测试时无需区分逻辑测试和应用程序测试成为可能。具体来说,它让我可以为 View Controller 编写单元测试。

以下是我为避免整个启动顺序所做的工作:

编辑方案

  • 选择测试操作
  • 在“测试”中选择“参数”选项卡
  • 禁用“使用运行操作的选项”
  • 添加环境变量,将runningTests设置为YES

编辑您的应用委托(delegate)

  • 尽快将以下内容添加到 -application:didFinishLaunchingWithOptions: 中:

    #if DEBUG
    if (getenv("runningTests"))
    return YES;
    #endif
  • -applicationDidBecomeActive: 执行相同的操作,但只需return

更新:我改变了我的方法。参见 How to Easily Switch Your App Delegate for Testing .

关于objective-c - 在不启动模拟器的情况下在 Xcode 4 中运行逻辑测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274711/

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