gpt4 book ai didi

iPhone Xcode 有没有办法在不加载模拟器的情况下测试方法?

转载 作者:行者123 更新时间:2023-11-28 21:01:15 24 4
gpt4 key购买 nike

我正在尝试测试我的 iPhone 项目所需的一些简单的字符串操作方法。我想知道是否有在每次不加载模拟器的情况下测试方法结果的方法..

例如在我的 main.m 方法中:

#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {
testMethod();
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}


void testMethod() {
NSString *body = @"{\"username\":\"name\",\"password\":\"123\"}";
NSLog(@"body=%@",body);
}

我只想运行此代码并查看控制台输出的内容(不需要模拟器)。这在 xCode 中可能吗?

最佳答案

这是 Unit Testing 的完美情况.对于 iPhone 开发,我一直在使用 GH-Unit .

设置 GH-Unit 和学习如何编写正确的单元测试会产生一些开销,但返回将是:

  1. 您将能够快速编写和测试您的方法,并确信它能正常工作。
  2. 测试将永久存在,因此您可以重构您的测试方法并确保您没有破坏任何东西。

我从未听任何人谈论过单元测试的最大好处是它可以让您快速修复错误。当您或测试人员在您的应用程序中发现错误时,您可以快速编写单元测试以重现导致错误的情况,重新编写代码来处理错误,然后运行测试,所有这些都无需编译和运行您的应用程序.对于深埋在导航层次结构中的错误,这是一个巨大的胜利。

我刚刚记得的另一个好处是,良好的单元测试可以让您在练习模式下逐步使用您的类/方法,然后再编写一大堆依赖于特定接口(interface)的代码。这是找出那些笨拙的小工作流程的好方法,这些工作流程在您不得不真正开始使用之前似乎是个好主意。

还有一个好处: self 记录。如果您需要向某人提供有关如何使用您的类的示例代码,只需从单元测试中复制并粘贴代码即可。

我不做测试驱动开发,我也不喜欢 100% 的覆盖率,但是你可能从这篇文章中可以看出,我喜欢一些单元测试。我曾经跳过各种尴尬的圈套,设置基于终端的小项目,让我测试我的类,而无需运行整个应用程序的开销。过了一会儿,我意识到这一切是多么愚蠢,并全神贯注于学习如何测试我的类(class)。它极大地提高了我的工作效率。


@jlehr 建议使用 OCUnit,它确实与 Xcode 集成得更好并且更容易设置。不过,我会远离 iPhone 上的 OCUnit。在使用 OCUnit 的模拟器中时,我在调试器中运行单元测试时遇到了很多问题。如果您可以先尝试编写完美的单元测试,也许这不是问题:-D GHUnit 让您可以立即调试单元测试。

不过,这仅适用于 iPhone 开发人员。如果您使用的是 OS X,那么 OCUnit 是单元测试的绝佳选择。那里有很多其他测试框架,但 GHUnit 是我尝试使用的唯一一个非常适合 iPhone 开发的框架。

关于iPhone Xcode 有没有办法在不加载模拟器的情况下测试方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326463/

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