第 3 方 API 的 Moqing HttpPostedFile
我正在通过扩展 DotNetNuke 的 ActiveSocial 并使用我无法控制的 ActiveSocial API 来构建自定义模块...并且我正在尝试对我的代码进行单元测试(使用 C#)。
在使用此 API 时,我可以通过调用其方法并传递一些信息(包括 HttpPostedFile 对象)将图像保存到 AmazonS3。
因此,在我的单元测试中(远非专家),我想在传递给 API 之前确保 HttpPostedFile 的文件类型是我想要的 (jpg/png)。但我无法模拟 HttpPostedFile。
我在 google 和 msdn 上搜索过,看到有人在哪里使用 HttpPostedFileBase - 但我无法将其传递或转换为 API 的 HttpPostedFile。
诚然 - 现在 - 我的代码没有做任何非常复杂的事情,所以我可以跳过这些类型的测试 - 但这个野兽正在成长,有一天会接管世界(手指交叉),因此我只是希望有信心测试复杂性是否/何时发生变化 - 不会出现任何问题。
有什么想法/建议吗?
I'm building a custom module by extending ActiveSocial for DotNetNuke and using ActiveSocial's API that I have no control over... and I'm trying to unit test my code (using C#).
In using this API - I can save images to AmazonS3 by calling their method and passing some info - including an HttpPostedFile object.
So in my unit testing (far from expert) I was thinking of just making sure the file type of the HttpPostedFile is what I want (jpg/png) before passing to the API. But I cannot mock out an HttpPostedFile.
I've google'd and msdn'd and seen where some people were using HttpPostedFileBase - but I cannot pass nor cast that to an HttpPostedFile to the API.
Granted - RIGHT NOW - my code doesn't do anything very complicated so I could just skip these types of test - but this beast is growing and will someday take over the world (fingers crossed) and I would therefore just like the confidence of the tests for if/when the complexity does change - nothing get's botched.
Any ideas/suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从单元测试的角度来看,您应该抽象出您无法控制的部分并测试您可以控制的部分。因此,您应该模拟 ActiveSocial API 并只测试您自己的代码。如果您需要更多帮助/指导,如果您在问题中包含一些代码可能会有所帮助。
From a unit testing point of you, you should abstract away the parts that you don't have control over and test the parts that you do control. So you should mock out the ActiveSocial API and just test your own code. If you need any more help/guidance, it might be helpful if you included some code in your question.