对复制函数进行单元测试

Unit test for copy function

本文关键字:单元测试 函数 复制      更新时间:2023-10-16

我有一个名为copyMyFile(string src, string dest)的c++函数,它只是将src文件复制到目标。现在我需要为这个函数编写一个单元测试。因为我从来没有写过单元测试,所以我不确定它应该包括什么。

我的意思是在我的test_copyMyFiles()单元测试方法中,我应该只调用copyFiles()方法和一些参数,就这样吗?或者我应该做一些其他的工作来完成单元测试?

将注释转移到答案,因为它们似乎有一些用处。

需要考虑的情况包括:空文件名;相同的文件名两次;无效的文件名。检查事项:文件副本与原件相同;当没有足够的磁盘空间用于复制时会发生什么;错误报告;如果目标是一个目录而不是文件名,会发生什么?

为了调用copyMyFile,我首先需要有一些文件,所以我猜在test_copyMyFiles()方法中我需要首先创建一个文件。如果我也有一个函数createMyFile(),我可以在我的单元测试中使用它吗?或者在单元测试另一个用户定义模块时使用一个用户定义模块不是好主意?

粗略地说,如果您已经对文件创建代码进行了单元测试,那么在测试文件复制代码时使用它应该是可以的(假设它通过了)。如果对文件复制代码进行单元测试,却发现在文件创建代码中存在bug,那就不太好了——那会导致混乱。因此,无论如何都要编写使用可信(已测试)代码的单元测试,但不要使用不可信(未测试)代码。这意味着你必须建立一个依赖列表,而你不能承受依赖列表中的循环。