我使用Xunit創建了一個單元測試來測試調用SitecoreContext並始終返回null的方法。Glassmapper SitecoreContext單元測試
我正在使用FakeDB作爲網站上下文。
這是方法進行單元測試:
public static Model GetModelData(object owner)
{
try
{
using (var context = new SitecoreContext())
{
string homePath = Sitecore.Context.Site.ContentStartPath;
Model = context.GetItem<Model>(string.Format("{0}/Configuration/Model", homePath));
}
}
catch (Exception ex)
{
Sitecore.Diagnostics.Log.Error("GetModelData() Exception: " + ex.InnerException, owner);
}
return backToTop;
}
我創建使用FakeDb假SiteContext並呼籲方法。這裏是我嘗試過的:
var fakeSite = new Sitecore.FakeDb.Sites.FakeSiteContext(new Sitecore.Collections.StringDictionary
{
{ "name", "fakesite" }, { "database", "master" }, { "rootPath", "/sitecore/content/home" }
});
using (new Sitecore.Sites.SiteContextSwitcher(fakeSite))
{
var result = SomeClass.GetModelData(this);
result.Should().NotBeNull();
}
當調試時,我得到var上下文返回null。有沒有辦法像嘲笑Glassmapper SitecoreContext?或者這是不可能的,因爲我正在從該方法引入一個新的SitecoreContext?