下载MetaTrader 5

文章 "通过"单元测试"的帮助来提高代码质量"

要添加评论,请登录注册
您想要编写技术指标吗?在MQL5 参考中找出解决方案!
MetaQuotes Software Corp.
版主
181162
MetaQuotes Software Corp. 2016.04.08 12:56 

新文章 通过"单元测试"的帮助来提高代码质量已发布:

就算是简单程序也会经常出现看似难以置信的错误。 “我怎么会编出这种东西?”是我们发现这种错误时的第一反应。 “我应该如何避免它?”则是较少会映入脑海的第二个问题。 编写完美无缺的代码是不可能的,特别是在大型项目里,但可通过技术手段及时检测出这些错误。 本文介绍如何借助通用的“单元测试”方法来提高 MQL4 代码质量。

创建“单元测试”相关实践

让我们设定一个训练目标! 假设我们的任务是开发拥有在入口接受两个数组的函数的库。 函数从第一个数组中删除第二个数组中没有的元素。 因此,第一个数组是第二个数组的子集。

让我们决定函数的原型:

void CreateSubset(int & a1[], int a2[]);

我们将尝试使用“测试驱动”方法来开发函数。 让我们决定一套测试数据。 我们应标记一些输入数据等值类来达到以下目标:

  1. 让两个数组都为空白。
  2. A1 空白,A2 含有元素。
  3. A1 包含元素,A2 空白。
  4. 两个数组包含相似元素集合,大小相似。
  5. A1 包含 A2 内没有的元素。
  6. A1 内部分元素出现在 A2 内,A2 内部分元素包含在 A1 内(两者相互交叉)。
  7. A1 所有元素都出现在 A2 内,但 A2 更大。
  8. A1 元素的一小部分显示在 A2 中。 此外,元素分散在数组各处。
  9. A1 元素的一小部分显示在 A2 中。 此外,元素集中在数组开头处。
  10. A1 元素的一小部分显示在 A2 中。 此外,元素集中在数组末尾处。

作者:Андрей

要添加评论,请登录注册