我怎么能模拟HttpPostedFileBase mock

时间:2013-06-20 08:01:58

标签: c# asp.net-mvc mocking

我如何模拟HttpPostedFileBase?

它的道具是只读的,我需要测试一个文件上传模块。

我应该使用什么模拟框架?

    public class FileUpload
    {

        private readonly HttpPostedFileBase _file;
        private readonly string _filePath;

        public FileUpload(HttpPostedFileBase file, string path)
        {
            _file = file;
            _filePath = path;
        }
.......

1 个答案:

答案 0 :(得分:2)

HttpPostedFileBase是一个抽象类。在您的测试中,只需创建一个继承自它的新类并创建您自己的存根版本(对您需要测试的方法结果进行硬编码)。你在做什么样的测试?

  • 模拟(测试互动)
  • 存根(使用已知值进行测试)
  • 假货(使用更简单的对象来完成任务,不一定是生产代码)。

我认为这里的存根是最合适的。

或者,您可以使用Moq(或其他框架)来帮助解决此问题。