我正在编写测试以确认csv文件已经点击了我的下载文件夹。由于csv文件的标题设置为包含下载的日期和时间,因此不断更改我的功能中文件的名称是不切实际的。示例文件名:fleet_123456_20140707_103015.csv
我可以在我的ruby代码中包含一些只会确认" fleet_123456
"是否存在,因为它是每次下载时出现的名称的唯一通用部分?
目前我有:
Then /^I should get a download with the filename "(.*?)"$/ do |file_name|
page.response_headers['Content-Disposition'].should include("filename=\"#{file_name}\"")
end
我认为"#{file_name}\"")
需要tweeking,只是不确定在哪里。
任何帮助都会很棒,谢谢
答案 0 :(得分:1)
你问:
我可以在我的ruby代码中包含一些只会确认“fleet_123456”存在的内容,因为它是每次下载时出现的名称的唯一通用部分吗?
是的,你可以。一种方法是用基于正则表达式的匹配器替换包含匹配器。例如,而不是
page.response_headers['Content-Disposition'].should include("filename=\"#{file_name}\"")
你可以写
page.response_headers['Content-Disposition'].should match(/filename="fleet_[\d_]+.csv"/)
,它将匹配“fleet_123456”,后跟数字和下划线的任意组合,后跟“.csv”。另一种可能性,如果你想更具体一点,是
page.response_headers['Content-Disposition'].should match(/filename="fleet_123456_\d+_\d+.csv"/)