方法があります。ハードディスクからドキュメントを取得します。単体テストからこれをテストすることはできません。例外無効なヌルパスまたは何かを常にスローします。それをテストする方法。単体テスト用のセッションを一時的に作成しました。しかし、この Server.MapPath はできません。どうやってするか ?
12795 次
3 に答える
9
変更できない、または変更したくないレガシーコードをテストする必要がある場合は、FakeHttpContextを試すことができます。
これがどのように機能するかです:
var expectedPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "path");
using (new FakeHttpContext())
{
var mappedPath = Http.Context.Current.Server.MapPath("path");
Assert.Equal(expectedPath, mappedPath);
}
于 2016-01-25T08:44:16.073 に答える
0
私は NSubstitute を使用していましたが、以下のように実装しました。
var fakeContext = Substitute.For<HttpContextBase>();
fakeContext.Server.MapPath(Arg.Any<string>()).ReturnsForAnyArgs("/set-path/");
于 2019-10-07T21:58:49.757 に答える