我使用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?