当前位置 : 主页 > 手机开发 > 其它 >

单元测试 – TDD – 我应该为此功能编写哪些测试?

来源:互联网 收集:自由互联 发布时间:2021-06-22
我已经读过,我应该首先编写简单的基本测试,然后逐渐转向更难的测试.我应该为以下功能编写哪些测试(按顺序)? 函数List.syncWithList(lst) 应该在列表中添加任何不在列表中但是在lst中的
我已经读过,我应该首先编写简单的基本测试,然后逐渐转向更难的测试.我应该为以下功能编写哪些测试(按顺序)?

函数List.syncWithList(lst)

>应该在列表中添加任何不在列表中但是在lst中的项目
>应删除列表中不属于lst的任何项目
>应该替换列表中具有不同于lst中的版本标签的任何项目
>不应该替换列表中与lst中版本标签相同的任何项目

你有基本的测试列表.你刚刚把它们提供给我们.至少,您应该测试是否已满足每个功能要求(例如,您在问题中给出的四个要点).

除此之外还有边缘情况,例如空列表(在一侧和两侧),相同的列表等等.

最简单的方法是添加以下内容:

>双方空单.
>相同的清单.
>清空左侧列表,其中包含要添加的单元素右侧列表.
>单元素左侧列表,其中包含要删除的空右侧列表.
>前两个测试,但一方面有五个元素列表.
>替换单元素左侧列表中的一个元素.
>替换左边五元素列表中的一个元素.
>替换五元素左侧列表中的三个元素.
>检查相同版本标签上是否没有替换.

然后在解决个别问题时添加更多内容.

我不能强调这一点:自动化测试!只需按下按钮并查看结果,您就会发现测试更容易.每当你发现一个bug时,添加一个测试,它会把这个bug发现到上面的测试套件中,然后按下按钮进行验证.

我们将测试归结为精美的艺术品.使用一个命令,可以实现整个流程,吹走数据库,使用已知数据加载数据库,运行测试,将输出与先前成功的测试进行比较等等.

如果我们在做出改变时必须手动完成所有操作,我们很快就会完全抛弃这个想法.通过自动化一切,测试是轻而易举的.

网友评论