当前位置: 首页 > news >正文

南宁网站设计组织建设方面

南宁网站设计,组织建设方面,网站500错误是什么意思,应用网站模板文章目录 使用QuickNimble1、苹果官方测试框架XCTest的优缺点2、选择QuickNimble的原因#xff1a;3、QuickNimble使用介绍集成#xff1a;Quick关键字说明#xff1a;Nimble中的匹配函数等值判断#xff1a;使用equal函数是否是同一个对象#xff1a;使用beIdenticalTo函… 文章目录 使用QuickNimble1、苹果官方测试框架XCTest的优缺点2、选择QuickNimble的原因3、QuickNimble使用介绍集成Quick关键字说明Nimble中的匹配函数等值判断使用equal函数是否是同一个对象使用beIdenticalTo函数比较比较浮点数类型检查是否为真是否有异常集合关系字符串检查集合中的所有元素是否符合条件检查集合个数匹配任意一种检查 4、Quick使用总结 使用QuickNimble github地址 1、苹果官方测试框架XCTest的优缺点 优点与 Xcode 深度集成有专门的Test 导航栏。 缺点 1因为受限于官方测试API因此功能不是很丰富。 2在书写性和可读性上都不太好。在测试用例太多的时候由于各个测试方法是割裂的想在某个很长的测试文件中找到特定的某个测试并搞明白这个测试是在做什么并不是很容易的事情。 3所有的测试都是由断言完成的而很多时候断言的意义并不是特别的明确对于项目交付或者新的开发人员加入时往往要花上很大成本来进行理解或者转换。另外每一个测试的描述都被写在断言之后夹杂在代码之中难以寻找。 4使用XCTest测试另外一个问题是难以进行mock或者stub 2、选择QuickNimble的原因 主要是由于苹果官方框架的测试方法及断言不明确可读性不好难以分辨交接项目需要花费的时间很多所以建议采用三方测试框架 目前主流的三方测试框架主要有 oc中kiwi 、specta、cedar swiftquicknimble、Sleipnir 由于项目是使用的swift语言所以主要采用quicknimble用于单元测试和断言。 如果你的项目是OC的推荐使用kiwi目前是start最多的三方框架。 3、QuickNimble使用介绍 Quick 是一个建立在XCTest 上为Swift 和Objective-C 设计的测试框架. 对测试使用Swift编写的App非常友好对Swift使用者来说Quick是最佳选择 它通过DSL 去编写非常类似于RSpec 的测试用例。 Nimble 就像是Quick 的搭档它提供了匹配器作为断言用于编写匹配模式。 集成 使用pod集成方便快捷 pod ‘Quick’ pod ‘Nimble’ 新建一个测试类继承于QuickSpec父类然后重写spec( )方法 示例代码 finalfinal class BindDeviceTests: QuickSpec {override func spec() {//所有测试放在这里describe(test BindDeviceDB) {let findMac 34:94:54:C2:E3:C6let bindedMacs [34:94:54:C2:E3:C6,D8:0B:CB:62:08:5F,FF:F2:00:08:21:9C]it(test saveBindDevice) {let bindDevice BindDevice()bindDevice.scaleName testbindDevice.userId testLoginUserIdbindDevice.mac testMacexpect(bindDevice.save()).to(beTrue())}it(test findBindDeviceList) {let list BindDevice.findBindDeviceList()printLog(message: test findBindDeviceWithMac: \(String(describing: list?.count)))expect(list?.count) 6}......xit(test findNotUploadBindDevices) {let list BindDevice.findNotUploadBindDevices()printLog(message: test findNotUploadBindDevices: \(String(describing: list?.count)))expect(list).to(beNil())}}}}Quick关键字说明 Nimble中的匹配函数 等值判断使用equal函数 expect(actual).to(equal(expected))expect(actual) expectedexpect(actual) ! expected 是否是同一个对象使用beIdenticalTo函数 expect(actual).to(beIdenticalTo(expected))expect(actual) expectedexpect(actual) ! expected 比较 expect(actual).to(beLessThan(expected))expect(actual) expectedexpect(actual).to(beLessThanOrEqualTo(expected))expect(actual) expectedexpect(actual).to(beGreaterThan(expected))expect(actual) expectedexpect(actual).to(beGreaterThanOrEqualTo(expected))expect(actual) expected 比较浮点数 expect(10.01).to(beCloseTo(10, within: 0.1)) 类型检查 expect(instance).to(beAnInstanceOf(aClass))expect(instance).to(beAKindOf(aClass)) 是否为真 expect(actual).to(beTruthy())expect(actual).to(beTrue())expect(actual).to(beFalsy())expect(actual).to(beFalse())expect(actual).to(beNil()) 是否有异常 // Passes if actual, when evaluated, raises an exception:expect(actual).to(raiseException())// Passes if actual raises an exception with the given name:expect(actual).to(raiseException(named: name))// Passes if actual raises an exception with the given name and reason:expect(actual).to(raiseException(named: name, reason: reason))// Passes if actual raises an exception and it passes expectations in the block// (in this case, if name begins with ‘a r’)expect { exception.raise() }.to(raiseException { (exception: NSException) in expect(exception.name).to(beginWith(“a r”)) }) 集合关系 // Passes if all of the expected values are members of actual:expect(actual).to(contain(expected…))expect([“whale”, “dolphin”, “starfish”]).to(contain(“dolphin”, “starfish”))// Passes if actual is an empty collection (it contains no elements):expect(actual).to(beEmpty()) 字符串 // Passes if actual contains substring expected:expect(actual).to(contain(expected))// Passes if actual begins with substring:expect(actual).to(beginWith(expected))// Passes if actual ends with substring:expect(actual).to(endWith(expected))// Passes if actual is an empty string, “”:expect(actual).to(beEmpty())// Passes if actual matches the regular expression defined in expected:expect(actual).to(match(expected)) 检查集合中的所有元素是否符合条件 // with a custom function:expect([1,2,3,4]).to(allPass({$0 5}))// with another matcher:expect([1,2,3,4]).to(allPass(beLessThan(5))) 检查集合个数 expect(actual).to(haveCount(expected)) 匹配任意一种检查 // passes if actual is either less than 10 or greater than 20expect(actual).to(satisfyAnyOf(beLessThan(10), beGreaterThan(20)))// can include any number of matchers – the following will passexpect(6).to(satisfyAnyOf(equal(2), equal(3), equal(4), equal(5), equal(6), equal(7)))// in Swift you also have the option to use the || operator to achieve a similar functionexpect(82).to(beLessThan(50) || beGreaterThan(80)) 4、Quick使用总结 使用Quick编写it方法执行多个test方法实际执行顺序按照字母排序执行可以从控制台打印得出单元测试的方法保存、删除、修改等会对数据库真正意义上的修改使用xit表示不测试这些方法当既有it又有fit表示只会测试fit的方法 只要存在f开头的方法单元测试开始执行便只会执行f开头的方法即使不在同一个测试类中当使用describe、context、it嵌套使用时当最外层方法使用了x开头的整个入口都不会进入测试即使嵌套里面使用了f开头的
http://www.hkea.cn/news/14423408/

相关文章:

  • 网站开发虚拟电话金属建材企业网站建设方案
  • 建设行业公司网站wordpress云建站教程视频
  • 山西网站建设企业永城网站建设
  • 南宁建设网站哪里好多用户商城系统的优势
  • 个人建设网站论文国产crm系统91
  • 江门建站引擎网站
  • 青岛网站建设网站做景观设施的网站
  • 百度网盟网站有哪些专业网站建设是哪家
  • 深圳html5网站建设价格美团网站建设
  • 网站站点不安全东莞百度seo新网站快速排名
  • 做的很漂亮的网站微网站制作软件
  • 淮安建设网站响应式网站源码.net
  • 网站建设培训班学费p2vr做的网站上传
  • 怎么做自己的网站免费wordpress 调用头尾
  • 网站实施方案凤凰网最新军事新闻
  • 做印刷网站公司简介wordpress最新版获取标签
  • 哪个做h5的网站好用网站建设的编程语言
  • 网站怎么做成软件线上推广活动
  • 网站后台排版工具注册网站
  • 做网站需要学习哪些wordpress 备份云盘
  • 金华公司做网站万网如何购买网站空间
  • 网站建设按年收费吗广州市建设工程交易中心网站
  • 哪个网站可以免费做电子请柬一键生成app工具
  • 网站开发需求分析主要内容建设网站需要掌握什么编程语言
  • 做网站找景安免费建设淘宝客网站
  • 做网站的电脑配置win7如何做网站服务器
  • 网站注册商标广东室内设计公司排名
  • 郑州企业网站优化公司德惠网站建设
  • 高品质的网站开发网站建设推广费怎么做账
  • 成武菏泽网站建设公司做网站之前要准备什么