第 3 方 API 的 Moqing HttpPostedFile

发布于 2024-12-25 18:49:36 字数 510 浏览 2 评论 0原文

我正在通过扩展 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

死开点丶别碍眼 2025-01-01 18:49:36

从单元测试的角度来看,您应该抽象出您无法控制的部分并测试您可以控制的部分。因此,您应该模拟 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文