这个时候我们可以在Unit Test
里面写一个Test Method
来做个事情,去验证返回结果的正确性
func testNumberOfVowelsInString_shouldReturnNumberOfVowels() {
let viewController = ViewController()
let string = "Failure"
let results = viewController.postForLoginAction(response: "xxx")
XCTAssertEqual(string, results, "登录失败,返回结果: \(results)")
}
这里使用了XCTest
框架里面的一个断言函数XCTAssertEqual(_:_:message:)
,他是用来检测两个表达式是否相等,最后一个参数是在不等的情况下会log的信息;
在写测试的时候会有很多类似XCTAssertEqual
的方法被调用到,下面列举一些常用的:
XCTAssertTrue(\_:\_:file:line:):
判断结果是否为真XCTAssertFalse(\_:\_:file:line:):
判断结果是否为假XCTAssertEqual(\_:\_:\_:file:line:):
判断两个表达式是否相等XCTAssertNotEqual(\_:\_:\_:file:line:):
判断不相等XCTAssertNil(\_:\_:file:line:):
判断结果是否为nil
XCTAssertNotNil(\_:\_:file:line:):
判断是否为非nil
有兴趣的同学可以进入XCTest
里面查找一下,有很多个,而且命名方式都非常的语义化,还是比较容易理解的
Unit Tests
的运行方法和UI Tests
有些区别,Unit Tests
并没有自动记录功能,所有只能Command + U
来进行测试
当然,Unit Tests
也可以进行单条测试,方法同UI Tests
一样,点击右侧的小按钮即可
OK
,看到这里,有没有觉得可以解放自己的一部分劳动力了,很多需要来回点击输入看log
的重复性工作被解放了
Cool????...
有木有?
通过上面的简单示例,你已经知道如何测试了,那么在写测试代码的时候,请尽量遵循以下几条:
test
作为开头前缀Test Case
,毕竟业务是分离的TDD(Test - Driver Development)
Command + U
会执行你所有的测试
测试代码是必要的,可能很多同学都会在各类博客看过或听说过TDD(Test - Driver Development)
,测试驱动开发在一定程度上可以保证代码的质量,同时保证交付的效果如预期.
当然辣,现实是,很多开发同学不写测试代码,楼主曾经见过不但不写测试,连手动测试都不做的开发者,甚是可怕;而且,超自信,当bug
出现的时候,信誓旦旦的说:一定是后台的问题,我的代码是不会有bug
的????
原文转自:http://www.jianshu.com/p/2143182b9948