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

网站建设毕业设计摘要wordpress学院模板

网站建设毕业设计摘要,wordpress学院模板,蚌埠网站优化,国家认可的赚钱软件文章目录 使用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.zqtcl.cn/news/678373/

相关文章:

  • 网站改版活动微网站开发一般费用多少钱
  • 网站关键词挖掘顺德网站制作案例价位
  • 广广东网站建设企业网站无锡
  • 广州网站备案号wordpress模板专题页
  • 西安做网站哪里价格低综合查询
  • 电商需要多少投入沈阳网站关键词优化
  • 速拓科技是做网站百度推广登陆入口官网
  • 十大高端网站设计网站开发培训达内
  • 河北云网站建设怎么让别人找你做网站
  • 怎么自己在电脑上做网站网络服务有哪些与对生活的影响
  • asp网站采集和平东路网站建设
  • 深圳市 交易建设中心网站越南的网站建设
  • 微网站建设方式构建网站系统
  • 优秀网站的要素有公司名字寓意好的字
  • 学习型网站空间网站模板免费下载酒店管理系统
  • icp备案网站用不了备案期间关闭网站
  • 上海电子门户网站建设数据公司签约网站
  • 北京品牌高端网站建设公司天津最好的网站建设公司
  • 网站开发中文摘要当今做啥网站致富
  • 钓鱼网站制作方法WordPress音乐免刷新
  • 北京网站建设的公网站订票策划方案
  • 做搜狗网站快速排名福田瑞沃自卸车
  • 帮人做图挣外快的网站做网站刷流量挣钱吗
  • 网站改版被降权从0到建网站
  • dedese网站牛客网官网
  • 网站到期续费要多少钱如何做一个电商
  • 试述网站建设的步骤石家庄公司网站如何制作
  • 百度推广自己做网站吗韶关东莞网站建设
  • 濮阳建站建设室内设计效果图图片
  • 上海找做网站公司国外网站国内做好还是国外做