1.如何用googletest写单元测试Xcode中集成了单元测试框架OCUnit,可以完成不同侧重点的测试 。
Xcode下的单元测试分为logicuinttests和applicationunittests,两种类型的单元测试都需要对应一个自己的Target 。logicuinttests在编译阶段进行,并且只能在模拟器中进行,并且需要配置一个单独的schemes来运行 。
主要是针对数据层的各个模块进行测试,如果数据层的模块划分比较理想解耦相对彻底,则可以通过逻辑单元测试对各模块给出各种输入,然后对各数据模块的输出进行判断,来判断各数据模块是否正常 。applicationunittests在程序运行阶段进行,可以在模拟器和真机上进行,可以在应用的schemes或者单独配置的schemes里面运行 。
主要是针对应用中的相对比较重要的类以及部分简单的界面操作进行测试,完成逻辑单元测试以外的检测 。xcode可以通过2种方式创建UnitTest,一种是创建工程时自带UnitTest,一种时在已有工程添加UnitTest 。
三.Xcode创建带UnitTest的工程(Xcode4.6.2)如果在新建工程的时候选中并且新建的工程是一个应用,那么系统会默认生成applicationunittests;新建其它类型的工程选中IncludeUnitTests的话,系统默认生成logicuinttests 。系统自动生成的测试单元时会自动生成对应的target,并且一个target只能对应一中类型的单元测试,但可以包含多个测试文件,针对工程中不同的类进行测试 。
【unittest应该怎么写】四.Xcode向已有工程添加UnitTest(Xcode4.6.2)如果在新建工程的时候没有选择IncludeUnitTests的话,则可以手动去添加单元测试 。下面首先介绍下向工程添加单元测试的target:1、选则File->New->NewTarget,在左侧栏中选中iOS->other,右边选择,如图Next后位target完成命名这样就完成了向工程中添加单元测试用的target 。
效果如下其实按如上步骤添加单元测试target的话,生成的就是一个logicuinttests 。一般情况下Xcode在你添加新的target的时候会自动的添加一个schemes,该schemes的命名与你添加的target一样 。
如果你不想在新建target的时候新建scheme(因为applicationunittests可以在真机和模拟器上运行,并且时在程序运行时进行测试,所以完全可以和应用本身的target共用一个scheme,这样进行应用单元测试的时候就不用切换scheme 。)可以选择上图的ManageSchemes,去掉Autocreateschemes,如下图:为了验证新的scheme已经加入了新建的target,对这个新添加的scheme进行编辑,你可以在选中左侧的Test后看到右边显示出新添加的LogicUnitTestsTarget,说明该scheme已经默认添加了新添加的Target 。
新建完target后,可以将新建的target设置成logicunittests或者applicationunittests:设置logicunittests:就像之前所说,如果按上面的步骤添加一个单元测试用的target的话,就已经默认配置成了一个logicunittests 。为了确认新建的logicuinttests配置正确,可以进行如下的验证:1、选择新建的scheme:LogicUnitTests和一个运行目标2、选择Product->Test(或者Command+U)3、Xcode会显示BuildSuccessed和Testfailed,选择View->Navigators->Issue(或者Command+4)会有下图中的结果选择View->Navigators->ShowLogNavigator(Command+7)这样就说明添加的逻辑单元测试运行正确,因为没有添加测试语句,只有一个STFail,所以报错 。
将LogicUnitTest设置applicationunittests:如果在新建工程的时候选择Includeunittests,则系统会默认生成一个测试target,并配置为applicationunittests 。如果新建工程时没有选择包含单元测试,则在新建LogicUnitTest单元测试的Target之后,可以按如下步骤配置applicationunittests:1、选择新建的LogicUnitTest单元测试target,并选择BuildSetting栏和“All”2、在searchbar里面输入BundleLoader,将其值设置为$(BUILT_PRODUCTS_DIR)/.app/效果如下3、搜索TestHost,设置其值为$(BUNDLE_LOADER)效果如图4、使新建的单元测试target依赖与编译应用的target,效果如图5、如果是在新建的时候系统默认新建了scheme,则可以通过新的scheme来进行applicationtests,如果没有默认新建scheme,则可以编辑用来编译工程的scheme,选择左侧的Test如图:点击底部的“+”,将单元测试的target添加进来 。
- 离职申请书格式怎么写
- mvmt官网地址怎么写
- mvc文件的href怎么写
- 一个山加一个介怎么写
- mvc文件地址怎么写
- matlab书籍封面的图怎么写
- 施工事故处理报告怎么写
- 硫化氢的电子式怎么写
- 老师人物专访怎么写
- e自然小调怎么写