met*_*dos 4 testing tdd unit-testing duplicate-data duplicates
我是测试驱动开发的新手,我第一次尝试在一个简单的项目中使用它.
我有一个类,我需要测试这个类的对象的创建,插入和删除.如果我写三个单独的测试函数,我需要在其他函数中复制初始化代码.如果我将所有测试放在一个测试函数中,那么它与每个函数的一个测试相矛盾.我该怎么办?
这里的情况:
tst_create()
{
createHead(head);
createBody(body);
createFoot(foot);
}
tst_insert()
{
createHead(head);
createBody(body);
createFoot(foot);
obj_id=insert(obj); //Also I need to delete obj_id somehow in order to preserve old state
}
tst_delete()
{
createHead(head);
createBody(body);
createFoot(foot);
obj_id=insert(obj);
delete(obj_id);
}
Run Code Online (Sandbox Code Playgroud)
VS
tstCreateInsertDelete()
{
createHead(head);
createBody(body);
createFoot(foot);
obj_id=insert(obj);
delete(obj_id);
}
Run Code Online (Sandbox Code Playgroud)
而不是"每个功能一次测试",尝试将其视为"每个功能的行为的一个方面".
插入对象会给你什么?删除一个对象怎么样?为什么这些有价值?你怎么能告诉你已经完成了它们?写一个如何使用代码的例子,以及为什么这种行为很有价值.那就成了你的考验.
当你弄清楚你感兴趣的行为是什么时,只有在它使测试更具可读性的情况下才能提取出复制品.TDD不只是测试; 它还涉及提供文档,并帮助您考虑代码的每个元素的责任和代码的设计.测试的读取可能远远超过它们的编写,因此必须首先考虑可读性.
如有必要,将您感兴趣的所有行为放在一个方法中,并确保它是可读的.如果需要,您可以添加注释.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |