2

我正在使用 create_upload_url 将图像上传到 GAE blobstore

uploadURL = blobstore.create_upload_url('/upload')

为了对gae代码进行单元测试,可以模拟图片上传吗?或者我应该在我的测试平台中插入图像数据并假设上传成功?如果是这样,您如何将图像上传到测试台?

4

2 回答 2

1

同意@fredrik 关于您在那里测试的确切内容。

无论如何,如果您正在做一些功能/黑盒/类似测试,您可以简单地使用Webtest 框架(参见post方法)并进行实际上传,例如

payload = [(fieldname, filename)]
test_app.post(uploadURL, upload_files=payload)

有关如何初始化上述 test_app 的详细信息,请查看Handler Testing for Python 。

于 2012-06-07T09:39:37.453 回答
0

您能否提供一些有关您的测试外观的代码?

我认为您应该能够使用 webapp2 伪造对 upload_url 的请求。在这里查看一些关于如何伪造请求的示例代码。

另一方面,您应该考虑测试的目的是什么。是为了测试图片上传是否有效,还是上传完成后您的代码如何工作?

运行单元测试时,尝试打破对其他库的依赖关系,以便您只测试自己的代码。然后添加一套新的实现测试,即请求和 url 并检查您是否得到预期的响应。如上test_redirect_if_no_session例所示,向需要用户并期望重定向的页面发出请求(http 响应代码 302)。

..弗雷德里克

于 2012-06-07T08:52:37.810 回答