【发布时间】:2020-05-08 18:38:22
【问题描述】:
我正在为我的项目编写单元测试用例,并且对此相对较新。我有一个检查给定文件是否为 PDF 的函数(下面的函数):
def file_verify(orig_pdf):
try:
read_pdf = PyPDF2.PdfFileRead(open(orig_pdf,'rb'))
except PyPDF2.utils.PdfReadError:
return orig_pdf, "error: Invalid PDF is not supported!"
else:
return orig_pdf, os.path.basename(orig_pdf) + "is of PDF file format"
现在我将如何在 python 中为这个函数编写单元测试以确保它正常工作?
编辑:到目前为止,我能够编写单元测试功能(基于我在网上收到的信息),如下所示:
testdata_filename = 'my pdf location'
class TestVerifyPDF(unittest.TestCase):
def setUp(self):
self.testfile = open(testdata_filename)
self.testfile = self.testfile.read()
def tearDown(self):
self.testfile.close()
def test_pdf(self):
<test here>
【问题讨论】:
-
我首先将文件处理从验证功能中分离出来,这样您就可以传递测试选择的内容,从而将测试与任何文件系统内容很好地分开。
-
如果我理解正确,我想您是说要拆分输出并将 orig_pdf 与消息提示分开?好的,但是单元测试用例会是什么样子呢?我认为我也不应该在我的单元测试用例脚本中再次使用 PyPDF2。不确定如何设置单元箱。我已经编辑了我的帖子以反映我迄今为止编写的单元测试
-
为什么要返回调用者已有的文件名?其他字符串是
True和False的任意替代,这是该函数应该返回的内容。
标签: python unit-testing