【发布时间】:2016-12-14 13:33:33
【问题描述】:
我想删除 SharePoint 依赖项并将它们模拟出来。新的 SharePoint 加载项模板中的默认索引操作如下所示:
public ActionResult Index()
{
User spUser = null;
var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);
using (var clientContext = spContext.CreateUserClientContextForSPHost())
{
if (clientContext != null)
{
spUser = clientContext.Web.CurrentUser;
clientContext.Load(spUser, user => user.Title);
clientContext.ExecuteQuery();
ViewBag.UserName = spUser.Title;
}
}
return View();
}
我尝试将 ClientContext 打包到适配器中,但无法模拟出 Web 属性:
public interface IClientContext
{
Web Web { get; }
void Load<T>(T clientObject, params Expression<Func<T, object>>[] retrievals) where T : ClientObject;
void ExecuteQuery();
}
public class ClientContextAdapter : IClientContext
{
private readonly ClientContext _wrappedClient;
public ClientContextAdapter(ClientContext client)
{
_wrappedClient = client;
}
public Web Web => _wrappedClient.Web;
public void Load<T>(T clientObject, params Expression<Func<T, object>>[] retrievals) where T : ClientObject
{
_wrappedClient.Load(clientObject, retrievals);
}
public void ExecuteQuery()
{
_wrappedClient.ExecuteQuery();
}
}
如何对 SharePoint 加载项进行单元测试?
【问题讨论】:
标签: c# asp.net-mvc unit-testing sharepoint tdd