0 0

iOS下想对ViewController里面得函数编写单元测试,总是会出现nil argument,请问如何解决这个问题?5

#import "MasterViewController.h"
#import <GHUnitIOS/GHUnit.h>

@class MasterViewController;

@interface MasterViewControllerTest : GHViewTestCase{
    NSString* _type;
    NSString* _msgId;
    NSString* _url;
    NSString* _opened;
}@property(nonatomic,retain) MasterViewController* masterViewController;
@end

@implementation MasterViewControllerTest
@synthesize masterViewController;

-(void)setUp{
    MasterViewController *viewController = [[MasterViewController alloc]init];
    self.masterViewController = viewController;
}

-(void)testPostViewTimeToServ{    
    _type = @"m";
    _url = nil;
    _opened = nil;
    _msgId = @"";
    
    bool resultValue = [self.masterViewController saveAndPostViewMagBodyTime:_type arg_url:_url arg_open:_opened mid:_msgId];
    GHAssertNotEquals(resultValue, YES, @" post msgIs is nil fail");
    
}
@end


运行后,testPostViewTimeToServ就会出错,错误如下:
Test Suite 'Tests' started.
Starting MasterViewControllerTest/testPostViewTimeToServ
2012-04-02 20:50:42.269 kMsgGHUnitTests[7747:10b0f]
Name: NSInvalidArgumentException
File: Unknown
Line: Unknown
Reason: *** -[NSPlaceholderString initWithString:]: nil argument

请问这个问题如何解决?
2012年4月02日 23:05

1个答案 按时间排序 按投票排序

0 0

你将两个的argument的`nil`的值传递给`saveAndPostViewMagBodyTime:arg_url:arg_open:arg_mid:`了。你在你的方法中使用了这些nils值初始化字符串对象。

最简单的解决避免方法是传递一个空的字符串值来代替nil。


_url = @"";  
_opened = @"";

2012年8月31日 15:10

相关推荐

    iOS之presentViewController模态全屏适配解决方案.docx

    iOS之presentViewController模态全屏适配解决方案 .isPresentViewController模态全屏适配是iOS开发中的一项重要技术问题。从iOS 13.0开始,默认的模态显示视图从全屏变成了Sheet卡片样式的非全屏模式。这使得许多...

    ios实现viewcontroller切换传值的三种方法

    在iOS开发中,View Controller(ViewController)之间的数据传递是一个常见的任务。当用户在应用程序中进行导航,例如从一个页面跳转到另一个页面时,我们往往需要将一些信息从当前的ViewController传递给即将显示的...

    IOS强制子VIEWCONTROLLER为横屏

    在iOS开发中,有时我们需要特定的UIViewController在显示时强制处于横屏模式,特别是在展示全屏媒体内容或游戏等场景下。本篇文章将深入探讨如何在iOS应用中实现"强制子ViewController为横屏"的需求,同时确保父...

    iOS单元测试最佳实践

    ### iOS单元测试最佳实践 #### 一、iOS单元测试的重要性及意义 在软件开发过程中,单元测试是确保代码质量、提高开发效率的关键环节之一。对于iOS应用开发而言,良好的单元测试不仅能帮助开发者发现并修复潜在的...

    两个viewcontroller的界面切换

    "两个viewcontroller的界面切换"这一主题涉及到如何在iPhone应用程序中平滑地从一个ViewController过渡到另一个,同时实现动画效果,以提供良好的用户体验。在这个过程中,我们可以使用多种方法来实现这种切换,包括...

    ios-封装了viewController页面跳转常用的动画.zip

    你需要在这个协议的实现中编写自定义动画的逻辑,可以使用Core Animation或者UIKit提供的动画API来完成。 例如,你可以创建一个扩展,让UIViewController支持自定义过渡动画: ```swift extension ...

    presentViewController:如何不覆盖原先的viewController界面

    在iOS应用开发中,`presentViewController:animated:completion:` 是一个常用的方法,用于将一个新的视图控制器(UIViewController)呈现到当前的视图控制器之上。然而,通常情况下,这个方法会完全遮挡掉原先的视图...

    ios-pop viewcontroller.zip

    在iOS开发中,"ios-pop viewcontroller.zip" 文件可能是一个包含使用POP库(Pop是Facebook开源的一个用于iOS和OS X的轻量级动画库)来实现弹出模态视图控制器示例的压缩包。POP库提供了强大的视图动画功能,使得...

    iOS开发中的ViewController转场切换效果实现简介

    在iOS开发中,ViewController的转场切换效果是用户体验的重要组成部分,尤其在iOS7之后,苹果引入了一系列新API,使得开发者能够更加灵活、个性化地实现转场动画。本文将详细介绍这些新特性,帮助开发者掌握如何创建...

    ios7自定义viewcontroller切换效果

    标题“ios7自定义viewcontroller切换效果”和描述“ios7 viewcontroller 自定义切换效果,项目简单,demon清晰”指的是如何在iOS 7环境中,自定义UIViewController之间的过渡动画,以提供更加个性化和流畅的用户界面...

    半透明ViewController

    在iOS开发中,半透明(或称为玻璃效果)的ViewController是一种常见的设计手法,它能够为用户界面增添一种轻盈、通透的视觉感受。这种效果通常通过调整ViewController的背景或者子视图的透明度来实现,同时还可以...

    iOS7 ViewController转场

    在iOS开发中,ViewController转场是用户界面交互的关键部分,特别是在iOS7及更高版本中,Apple引入了一系列新的特性和API,极大地丰富了视图控制器之间的切换效果。本篇将深入探讨"ViewController转场",主要关注...

    IOS实现在两个ViewController间传值(一)

    在iOS开发中,数据在不同ViewController间的传递是一个常见的需求,特别是在构建复杂的用户界面时。本文将详细介绍如何在两个ViewController之间实现数据的传递,主要聚焦于基本的Objective-C编程环境,适用于初学者...

    ios-ViewController瘦身:DataSource.zip

    在这个案例中,“ios-ViewController瘦身:DataSource.zip”提供的解决方案是将`UITableViewDataSource`职责从`UIViewController`中抽离出来。 首先,让我们理解`UITableViewDataSource`的角色。`...

    ios-手势借助导航栏可以切换viewController.zip

    "ios-手势借助导航栏可以切换viewController.zip"这个压缩包文件,显然包含了一个实现通过手势在导航栏侧滑来切换ViewController的解决方案。这种功能常见于许多应用,让用户能够方便地浏览多个视图或内容板块,而...

    iOS 获取当前的ViewController的方法

    为了解决这个问题,我们需要了解iOS的视图控制器结构和视图控制器之间的关系。在下面,我们将介绍获取当前的ViewController方法,并对相关知识点进行详细解释。 UIViewController结构 在iOS中,UIViewController是...

    有关ios的开发的类

    本文将针对iOS应用开发中的单元测试,特别是基于一个简单的`iosCounter`项目来进行详细的解析,并探讨在模型视图控制器(MVC)架构下如何进行有效的单元测试。 #### 二、iOS单元测试基础 单元测试是一种软件测试...

    iOS_MVC_轻量化ViewController

    在iOS应用开发中,Model-View-Controller(MVC)是一种常见的设计模式,它将应用程序的结构分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。本主题将深入探讨如何在实践中创建轻量级的...

    文章 iOS 开发入门 - 快速编写一个弹框动态库 dylib 项目附件

    测试dylib的功能,我们可以创建一个简单的`tests`项目,导入dylib,编写测试用例来验证弹框功能是否正常工作。 总之,通过Xcode和Objective-C,我们可以快速创建一个弹框动态库dylib项目,便于在多个iOS应用中复用...

Global site tag (gtag.js) - Google Analytics