这个时候我们可以在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:): 判断结果是否为nilXCTAssertNotNil(\_:\_: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