我被要求编写一些测试以确认文本包含在PDF文件中。我已经遇到了PDF阅读器gem,除了输出太好之外,它总是擅长从文件中呈现文本。我有一段文本,例如,应该阅读Date of first registration of the product
,但PDF阅读器将其视为Date offirstregistrationoftheproduct
。因此,当我运行我的断言时,由于文本的间距而失败。
我的代码:
expected_text = 'Date of first registration of the product'
file = File.open(my_pdf, "rb")
PDF::Reader.open(file) do |reader|
reader.pages.each do |page|
expect(page).to have_text expected_text
end
结果是RSpec期望未达到错误。
有没有办法让我的文本格式正确,以便我的断言可以读取它?
答案 0 :(得分:0)
Reader的页面对象不是文本。如果您想从pdf获取文本,可以使用assertTrue(mockMvc.perform(get("/api/users/" + id))
.andExpect(status().isOk())
.andReturn()
.getResponse()
.getContentAsString()
.contains("{\"id\":\"" + id + "\"}");
。使用正则表达式可以解决您的问题。
尝试以下内容。
page.text