单元测试 + UI测试

一. 单元测试

简介:

单元测试, 又称模块测试, 是针对程序模块的最小单位来进行测试. 对于过程化变成来说, 一个单元就是单个函数 \ 过程等; 对于面向对象变成来说, 一个单元就是一个方法.

有了单元测试, 我们不需要每次都com+R 启动我们的程序,对于大的项目来说, 启动一次项目都会花费很长时间, 这时使用单元测试, 就方便了很多;

使用:

1.  添加测试文件

a.在创建项目的时候, 可以直接勾选include Unit Test

b.项目已存在, 可添加: File -> New -> Target -> Unit Test

文件中默认包含的四个方法:

 - (void)setUp
//初始化的代码,在测试方法调用之前调用
- (void)tearDown
// 释放测试用例的资源代码,这个方法会每个测试用例执行后调用
- (void)testExample 
// 测试用例的例子,注意自己写的测试用例方法 一定要test开头
- (void)testPerformanceExample {
// 测试性能例子
[self measureBlock:^{
    // Put the code you want to measure the time of here.
// 需要测试性能的代码
}];
}

2.测试 某个类中的方法

例如:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; min-height: 21.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #1d9421 }
span.s1 { }
span.s2 { color: #c32275 }
span.s3 { color: #3d1d81 }
span.s4 { color: #539aa4 }
span.s5 { color: #3c828c }
span.s6 { font: 18.0px Menlo; color: #000000 }
span.s7 { font: 18.0px Menlo }
span.s8 { color: #294c50 }
span.s9 { color: #78492a }
span.s10 { color: #0435ff }
span.s11 { color: #c91b13 }
span.s12 { font: 18.0px "PingFang SC"; color: #c91b13 }

- (void)setUp {

[super setUp];

self.vc = [[ViewController alloc] init];

}

- (void)tearDown {

self.vc = nil;

[super tearDown];

}

- (void)testMyFuc {

// 调用需要测试的方法,

int result = [self.vc getNum];

// 如果不相等则会提示@“测试不通过”

XCTAssertEqual(result, 200,@"测试不通过");

}

二. UI 测试

需要写一些代码, 来模拟 人为的操作, 从而根据结果,来判断正确与否

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3d1d81 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; min-height: 21.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #6122ae }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1d9421 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #703daa }
span.s1 { }
span.s2 { color: #c32275 }
span.s3 { color: #000000 }
span.s4 { color: #6122ae }
span.s5 { color: #703daa }
span.s6 { color: #3d1d81 }
span.s7 { color: #c91b13 }
span.s8 { color: #0435ff }
span.s9 { color: #78492a }
span.s10 { font: 18.0px "PingFang SC"; color: #c91b13 }

- (void)testLogin{

[XCUIDevice sharedDevice].orientation = UIDeviceOrientationFaceUp;

[XCUIDevice sharedDevice].orientation = UIDeviceOrientationFaceUp;

//XCUIApplication 这是应用的代理,他能够把你的应用启动起来,并且每次都在一个新进程中。

XCUIApplication *app = [[XCUIApplication alloc] init];

//XCUIElement 这是 UI 元素的代理。元素都有类型和唯一标识。可以结合使用来找到元素在哪里,如当前界面上的一个输入框

XCUIElement *usernameTextField = app.textFields[@"username:"];

[usernameTextField tap];

[usernameTextField typeText:@"xiaofei"];

XCUIElement *passwordTextField = app.textFields[@"password:"];

[passwordTextField tap];

[passwordTextField tap];

[passwordTextField typeText:@"12345"];

[[[[[[[app childrenMatchingType:XCUIElementTypeWindow] elementBoundByIndex:0] childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element tap];

[app.buttons[@"login"] tap];

//登录成功后的控制器的title为loginSuccess,只需判断控制器的title时候一样便可判断登录是否成功

//    XCTAssertEqualObjects(app.navigationBars.element.identifier, @"loginSuccess");

XCTAssertEqual(app.navigationBars.element.identifier, @"loginSuccess",@"测试不通过");

}

参考链接:

http://www.jianshu.com/p/07cfc17916e8

时间: 2024-10-02 02:07:34

单元测试 + UI测试的相关文章

在Android studio中进行单元测试和ui测试

1.配置支持单元测试的工程 在写测试之前,让我们做下简单的检查,确保工程配置正确. 首先,确认在Build Variants窗口内的Test Artifact中选择了"Unit Tests". 然后,在工程的src文件夹内创建test和test/java文件夹.需要注意的是,你不能在Android视图下进行这些操作,要么在系统的文件管理器内创建,要么在工程窗口左上方点击下拉菜单选择Project视图.最终的工程结构应该是这样的: (在codelab的剩余部分,你可以返回继续使用Andr

Google推出iOS功能性UI测试框架EarlGrey

经过了一段时间的酝酿后,Google很高兴地宣布了EarlGrey,一款针对于iOS的功能性UI测试框架.诸如YouTube.Google Calendar.Google Photos.Google Translate.Google Play Music等多款Google应用都成功地采用了EarlGrey框架来满足其功能性测试之所需. EarlGre的特点 EarlGrey所提供的主要特性如下所示,这些特性使得应用的测试变得更加轻松,也更具效率: 强大的内建同步机制:测试会在与UI进行交互前自动

使用编码的 UI 测试来测试 Windows 应用商店应用

自从Win8应运而生以来,Windows应用商店便立马成为开发者展示的舞台,而这短短的几年里应用的数量就可数以万计,这也不可避免地出现了良莠不齐的局面.我们都知道Visual Studio是目前最流行的Windows平台应用程序的集成开发环境.VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码管控工具.集成开发环境(IDE)等等.所写的目标代码适用于微软支持的所有平台,我们也可以使用它来开发Win8应用.另一方面,Visual Studio也可以用来

Google+ 团队的 Android UI 测试

https://github.com/bboyfeiyu/android-tech-frontier/tree/master/android-blog/Google%2B%20%E5%9B%A2%E9%98%9F%E7%9A%84%20Android%20UI%20%E6%B5%8B%E8%AF%95 Google+ 团队的 Android UI 测试 原文链接:How the Google+ Team Tests Mobile Apps 译者:allenlsy 译者博文地址:http://al

编码UI测试

转自他人博客 使用 UI 自动化验证代码 Visual Studio 2013 驱动器通过其用户界面 (UI) 的应用程序的自动化的测试称为编码的 UI 测试的 (CUITs). 这些测试包括用户界面控件的功能测试. 它们使您可以验证整个应用程序,包括其用户界面,能正常工作. 没有验证或在用户界面中,例如在网页中的其他逻辑时,编码的 UI 测试将特别有用. 他们还经常用于自动执行现有手动测试. 下面的插图所示,一种典型的开发体验可能位置,开始时,您只需生成您的应用程序 (F5) 然后单击通过 U

跨多个App的UI测试

本文翻译自:Testing UI for Multiple Apps 水平有限自己感觉很多地方表达的并不到位,但找不到更好的表达方式,如果您觉着有更好的表达方式,帮助我改进! 跨越多个App进行UI测试 通过跨越多个APP之间的交互来测试你的APPUI,让你确认你的APP表现是否正确,比如:用户在你的APP和其他APP之间或者进入系统UI之间进行切换操作时.一个例子比如用户切换至短信APP它允许用户输入一个文本消息,然后切换到Android通讯录来选择要发送的目标,然后再返回短信APP来发送短信

使用karma做多浏览器的UI测试

avalon1.6开发得差不多,这次使用先进的开发理念进行开发,比如模块化,单元测试什么... ui测试是重要的一环,之前用阿里的totoro,但打开浏览器不方便.于是从webdrieverio, nightwatch,一直找到karma! karma的官网尤其烂,我搞了好久才能运行起来 用到的npm模块有: karma karma-mocha karma-mocha-reporter karma-firefox-launcher karma-chrome-launcher karma-oper

【译】Android中构建快速可靠的UI测试

博客原地址:Android中构建快速可靠的UI测试 译文原链接:Fast and reliable UI tests on Android 翻译:Anthony 译者注:如果你关注android架构,那么你肯定之前看过小鄧子翻译的这篇文章Android应用架构.本篇文章的正是其原作者Iván Carballo的又一篇经典之作.也推荐你关注github项目Android架构合集以及我的从零开始搭建android框架系列文章 前言 让我一起来看看 Iván Carballo和他的团队是如何使用Esp

012-ant design pro advanced UI 测试

一.概述 原文地址:https://pro.ant.design/docs/ui-test-cn UI 测试是项目研发流程中的重要一环,有效的测试用例可以梳理业务需求,保证研发的质量和进度,让工程师可以放心的重构代码和新增功能. Ant Design Pro 封装了一套简洁易用的 React 单元测试和 E2E 测试方案,在项目根目录运行以下命令就能运行测试用例. npm run test:all # 执行所有测试 二.详细 2.1.单元测试 单元测试用于测试 React UI 组件的表现.我们