Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在Sen框架中测试异步响应_Iphone_Unit Testing_Testing_Iphone Sdk 3.0_Ios4 - Fatal编程技术网

Iphone 在Sen框架中测试异步响应

Iphone 在Sen框架中测试异步响应,iphone,unit-testing,testing,iphone-sdk-3.0,ios4,Iphone,Unit Testing,Testing,Iphone Sdk 3.0,Ios4,我正在使用iphonesen测试框架进行测试。我需要测试来自服务器的异步响应。有人能帮我找到测试它的方法吗 谢谢这可能是一个重复的问题,但我不同意原来的答案。关于这个问题,我已经详细描述了原因 总之,为测试创建自定义运行循环既复杂又脆弱。如果删除对返回异步响应的外部服务的依赖,并在测试中模拟响应,测试将运行得更一致、更快。这样,如果外部服务关闭,您的测试不会失败,并且您的测试将运行得更快 有一些可用的库可以重新打开像NSURLConnection这样的类,并使之易于实现。由于Objective

我正在使用iphonesen测试框架进行测试。我需要测试来自服务器的异步响应。有人能帮我找到测试它的方法吗


谢谢

这可能是一个重复的问题,但我不同意原来的答案。关于这个问题,我已经详细描述了原因

总之,为测试创建自定义运行循环既复杂又脆弱。如果删除对返回异步响应的外部服务的依赖,并在测试中模拟响应,测试将运行得更一致、更快。这样,如果外部服务关闭,您的测试不会失败,并且您的测试将运行得更快


有一些可用的库可以重新打开像NSURLConnection这样的类,并使之易于实现。由于Objective C的动态特性,对于单个类(如NSURLConnection)也相对简单。这可能是一个重复的问题,但我不同意原始问题的答案。关于这个问题,我已经详细描述了原因

总之,为测试创建自定义运行循环既复杂又脆弱。如果删除对返回异步响应的外部服务的依赖,并在测试中模拟响应,测试将运行得更一致、更快。这样,如果外部服务关闭,您的测试不会失败,并且您的测试将运行得更快


有一些可用的库可以重新打开像NSURLConnection这样的类,并使之易于实现。由于Objective C的动态特性,对单个类(如NSURLConnection)执行Sen测试也相对简单。

我没有使用Sen测试,因为它没有在模拟器或设备中运行(或者至少在我去年第一次开始执行Objective C时没有),而是用作测试框架和模拟框架。GHUnit将在设备上运行测试,以确保代码正确。OCMock允许完全模拟、部分模拟和方法切换,这是单元测试的强大工具

我认为在这种情况下需要测试两个部分

  • 对单个组件(GHUnit和OCMock)进行单元测试。在这里,您可以直接调用方法并模拟类将在其中运行的环境。因此,您不需要服务器设置来测试异步调用。只需在单元测试中实例化该类并调用其方法

  • 集成测试。(仅限GHUnit)在这里,您需要进行基本测试,以确保您对代码和服务器之间通信的理解是正确的。这就是你需要服务器的地方。根据您的需要,这可能是大量或少量的工作。例如,当我完成这项工作时,我刚刚用一个ejb3bean设置了一个glassfish服务器,以模拟我要连接的服务器。重要的是,您安装的服务器必须与最终生产服务器的行为完全相同

  • 所以基本上这是一个双管齐下的方法。单元测试检查代码的每个细节。集成测试,以确保正确处理与服务器的总体通信


    使用两者都很重要,因为虽然单元测试可以检查难以通过集成测试检查的功能,但它的准确性取决于您对类和服务器之间通信的理解。因此,您至少需要一个基本的集成测试来确认您的理解是正确的。但不要浪费时间编写大量集成测试来检查类的每个细节。它总是比单元测试困难得多。

    我不使用Sen测试,因为它没有在模拟器或设备中运行(或者至少在我去年第一次开始做Objective C时没有),而是用作测试框架和模拟框架。GHUnit将在设备上运行测试,以确保代码正确。OCMock允许完全模拟、部分模拟和方法切换,这是单元测试的强大工具

    我认为在这种情况下需要测试两个部分

  • 对单个组件(GHUnit和OCMock)进行单元测试。在这里,您可以直接调用方法并模拟类将在其中运行的环境。因此,您不需要服务器设置来测试异步调用。只需在单元测试中实例化该类并调用其方法

  • 集成测试。(仅限GHUnit)在这里,您需要进行基本测试,以确保您对代码和服务器之间通信的理解是正确的。这就是你需要服务器的地方。根据您的需要,这可能是大量或少量的工作。例如,当我完成这项工作时,我刚刚用一个ejb3bean设置了一个glassfish服务器,以模拟我要连接的服务器。重要的是,您安装的服务器必须与最终生产服务器的行为完全相同

  • 所以基本上这是一个双管齐下的方法。单元测试检查代码的每个细节。集成测试,以确保正确处理与服务器的总体通信


    使用两者都很重要,因为虽然单元测试可以检查难以通过集成测试检查的功能,但它的准确性取决于您对类和服务器之间通信的理解。因此,您至少需要一个基本的集成测试来确认您的理解是正确的。但不要浪费时间编写大量集成测试来检查类的每个细节。它总是比单元测试困难得多。

    我用它来测试异步操作


    我使用它来测试异步操作


    可能重复:可能重复:嗨,亚当,我刚刚读了这篇文章和你的另一篇文章,同意你关于测试的说法。由美国