从websi生成的单元测试pdf

2024-04-25 04:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个用于生成pdf文件的包,通过将一些数据发布到网站并从数据中检索生成的pdf。你知道吗

我的问题是单元测试。所以我试着将一个已知的数据集发布到网站上,检索pdf并将其与一个我知道很好的pdf进行比较。这个工作很好,但是pdf中有一个时间戳,这意味着第二天它就不工作了。你知道吗

在我看来,我有三个选择。你知道吗

  • 一种是去掉pdf中的时间戳。从我的谷歌搜索来看,这似乎是相当困难的。它可能类似于pdf到图像的转换,然后去掉时间戳。然后与参考文件进行比较。

  • 选项二是创建一个模拟网站,然后我可以用它生成一个模拟的pdf。不过,这个选项对我来说似乎有点奇怪——因为这样我就不会测试到网站的实际连接,如果我破坏了连接中的某些东西,我就不会发现bug。

  • 第三种方法是检查我是否检索到了一些看起来是pdf格式的数据,然后处理它。这样,如果网站在生成的pdf文件中更改逗号,我也可以四处走动。

所以,我想我的问题是双重的。1:从单元测试的角度来看,制作一个模拟网站是一个更好的方法,还是只是测试我得到一些类似pdf的数据。你知道吗


Tags: 文件数据方法图像pdf网站格式选项
1条回答
网友
1楼 · 发布于 2024-04-25 04:52:32
  • 选项4:找出时间戳在pdf中的位置,并比较前后的字节

例如,如果时间戳位于偏移量11且长度为两个字节:

with open('reference.pdf') as rf:
    reference_data = rf.read()
with open('pdf_from_website.pdf') as wf:
    website_data = wf.read()
self.assertEqual(reference_data[:11], website_data[:11])
self.assertEqual(reference_data[13:], website_data[13:])

我不熟悉pdf文件的内部结构,所以这可能不起作用。不过,您可以使用diff来查看差异所在并进行尝试。你知道吗

对于你的第二个问题:如果你能测试返回的pdf文件是有效的,并且有它应该有的内容,那就最好了。你知道吗

相关问题 更多 >