第一次运行测试报错了
仔细检查发现,statment()的实现中,总价与单位没有空一格,斟酌后觉得还是空一格比较清晰,于是修改后,再次按快捷键?U运行测试,测试通过:
测试通过了
在单元测试中,绿色表示测试通过,红色表示测试失败,已经成为业界标准,XCTest遵循了这一规则。
测试用例组
通过第一个例子,我们知道了测试用例总是以test开头,作为约定俗成,凡是test开头的方法,都会被XCTest框架自动运行,下面我们添加对周末点播优惠的测试:
- (void)testStatement_Weekend { Movie *matrixMovie2 = [[Movie alloc] initWithTitle:@"黑客帝国2-重装上阵" priceCode:MovieEnumRegular]; Demand *aDemand2 = [[Demand alloc] initWithMovie:matrixMovie2 timePeriod:TimePeriodEnumWeekend];
Customer *aCustomer = [[Customer alloc] initCustomerWithName:@"溪石"]; |
这个测试用例除了电影名称不一样外,只是将点播时段由工作日改为了周末,以此判断计算规则是否正确。 这时,我们已经有两个测试用例了,为了加快测试速度,打开Xcode左侧第5项的测试导航面板,可以单独指定一个用例运行,注意图中标记处的图标变化:
单独运行一个测试用例
如此,我们可以将statement需要考虑的返回情况都写成一个个都测试用例(这里就不一一列举了,童鞋们可以自行实现,有问题可以评论中提出,虽然我不一定会回答),可以确保报表算法满足全部需求。
单元测试和功能测试的差别
功能测试的目的是保证整个软件包能正常工作,它面向的对象是客户,保障软件功能符合客户的要求的质量,当然这类工作应该交由喜爱找bug的专业测试部门去处理,他们会用与开发截然不同的工具,并且不关心实现的细节(这就是你与测试人员老是话不投机的原因)。
原文转自:http://www.jianshu.com/p/0b4fd636ad2c