多测师-多培养一些优秀的测试工程师
网站地图 |   收藏本站   |   

13825291265

软件测试之单元测试编码规范

发布日期:2022-01-14 09:27:55 作者:多测师 浏览次数:

  本文的主要重点是针对日常开发阶段工程师可以做的事情,也就是单元测试而展开。

  编写功能、业务代码的时候一般会遵循 kiss 原则 ,所以类、方法、函数往往不会太大,分层设计越好、职责越单一、耦合度越低的代码越适合做单元测试,单元测试也倒逼开发过程中代码分层、解耦。

  可能某个功能的实现代码有30行,测试代码有50行。单元测试的代码如何编写才更合理、整洁、规范呢?

单元测试编码规范

  1. 编码分模块展开

  先贴一段代码。

  - (void)testInsertDataInOneSpecifiedTable

  {

  XCTestExpectation *exception = [self expectationWithDescription:@"测试数据库插入功能"];

  // given

  [dbInstance removeAllLogsInTableType:HCTLogTableTypeMeta];

  NSMutableArray *insertModels = [NSMutableArray array];

  for (NSInteger index = 1; index <= 10000; index++) {

  HCTLogMetaModel *model = [[HCTLogMetaModel alloc] init];

  model.log_id = index;

  // ...

  [insertModels addObject:model];

  }

  // when

  [dbInstance add:insertModels inTableType:HCTLogTableTypeMeta];

  // then

  [dbInstance recordsCountInTableType:HCTLogTableTypeMeta completion:^(NSInteger count) {

  XCTAssert(count == insertModels.count, @"「数据增加」功能:异常");

  [exception fulfill];

  }];

  [self waitForExpectationsWithCommonTimeout];

  }

  可以看到这个方法的名称为 testInsertDataInOneSpecifiedTable,这段代码做的事情通过函数名可以看出来:测试插入数据到某个特定的表。这个测试用例分为3部分:测试环境所需的先决条件准备;调用所要测试的某个方法、函数;验证输出和行为是否符合预期。

  其实,每个测试用例的编写也要按照该种方式去组织代码。步骤分为3个阶段:Given->When->Then。

  所以单元测试的代码规范也就出来了。此外单元测试代码规范统一后,每个人的测试代码都按照这个标准展开,那其他人的阅读起来就更加容易、方便。按照这3个步骤去阅读、理解测试代码,就可以清晰明了的知道在做什么。

如需了解更多测试技术信息请关注:https://www.duoceshi.cn/jswz/深圳多测师软件与技术服务有限公司


查看更多 >>

推荐阅读