TDD的iOS开发初步以及Kiwi使用入门
作者:网络转载 发布时间:[ 2014/2/24 13:42:41 ] 推荐标签:测试技术
添加类的时候注意选择合适的target
由于VVStack是NSObject的子类,所以上面的两个断言应该都能通过。这时候再运行测试,成功变绿。接下来我们开始考虑这个类的功能:栈的话肯定需要能够push,并且push后的栈顶元素应该是刚才所push进去的元素。那么建立一个push方法的测试吧,在刚才添加的代码之下继续写:
- (void)testPushANumberAndGetIt {
VVStack *stack = [VVStack new];
[stack push:2.3];
double topNumber = [stack top];
XCTAssertEqual(topNumber, 2.3, @"VVStack should can be pushed and has that top value.");
}
|
因为我们还没有实现-push:和-top方法,所以测试毫无疑问地失败了(在ARC环境中直接无法编译)。为了使测试立即通过我们首先需要在VVStack.h中声明这两个方法,然后在.m的实现文件中进行实现。令测试通过的简单的实现是一个空的push方法以及直接返回2.3这个数:
//VVStack.h
@interface VVStack : NSObject
- (void)push:(double)num;
- (double)top;
@end
//VVStack.m
@implementation VVStack
- (void)push:(double)num {
}
- (double)top {
return 2.3;
}
@end
|
再次运行测试,我们顺利回到了绿灯状态。也许你很快会说,这算哪门子实现啊,如果再增加一组测试例,比如push一个4.6,然后检查top,不失败了么?我们难道不应该直接实现一个真正的合理的实现么?对此的回答是,在实际开发中,我们肯定不会以这样的步伐来处理像例子中这样类似的简单问题,而是会直接跳过一些error-try的步骤,实现一个比较完整的方案。但是在更多的时候,我们所关心和需要实现的目标并不是这样容易。特别是在对TDD还不熟悉的时候,我们有必要放慢节奏和动作,将整个开发理念进行充分实践,这样才有可能在之后更复杂的案例中正确使用。于是我们发扬不怕繁杂,精益求精的精神,在刚才的测试例上增加一个测试,回到VVStackTests.m中,在刚才的测试方法中加上:
- (void)testPushANumberAndGetIt {
//...
[stack push:4.6];
topNumber = [stack top];
XCTAssertEqual(topNumber, 4.6, @"Top value of VVStack should be the last num pushed into it");
}
|
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11