Unit testing for Server.MapPath

后端 未结 3 1768
暖寄归人
暖寄归人 2020-12-01 13:31

I\'ve a method. which retrieve a document from hard disk. I can\'t test this from unit testing. It always throw an exception invalid null path or something. How to test that

3条回答
  •  忘掉有多难
    2020-12-01 14:00

    If you need to test legacy code which you can't or don't want to change, you can try FakeHttpContext.

    This is how it works:

    var expectedPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "path");
    using (new FakeHttpContext())
    {
        var mappedPath = Http.Context.Current.Server.MapPath("path");
        Assert.Equal(expectedPath, mappedPath);
    }
    

提交回复
热议问题