我正在使用 create_upload_url 将图像上传到 GAE blobstore
uploadURL = blobstore.create_upload_url('/upload')
为了对gae代码进行单元测试,可以模拟图片上传吗?或者我应该在我的测试平台中插入图像数据并假设上传成功?如果是这样,您如何将图像上传到测试台?
我正在使用 create_upload_url 将图像上传到 GAE blobstore
uploadURL = blobstore.create_upload_url('/upload')
为了对gae代码进行单元测试,可以模拟图片上传吗?或者我应该在我的测试平台中插入图像数据并假设上传成功?如果是这样,您如何将图像上传到测试台?
同意@fredrik 关于您在那里测试的确切内容。
无论如何,如果您正在做一些功能/黑盒/类似测试,您可以简单地使用Webtest 框架(参见post
方法)并进行实际上传,例如
payload = [(fieldname, filename)]
test_app.post(uploadURL, upload_files=payload)
有关如何初始化上述 test_app 的详细信息,请查看Handler Testing for Python 。
您能否提供一些有关您的测试外观的代码?
我认为您应该能够使用 webapp2 伪造对 upload_url 的请求。在这里查看一些关于如何伪造请求的示例代码。
另一方面,您应该考虑测试的目的是什么。是为了测试图片上传是否有效,还是上传完成后您的代码如何工作?
运行单元测试时,尝试打破对其他库的依赖关系,以便您只测试自己的代码。然后添加一套新的实现测试,即请求和 url 并检查您是否得到预期的响应。如上test_redirect_if_no_session
例所示,向需要用户并期望重定向的页面发出请求(http 响应代码 302)。
..弗雷德里克