Ich möchte die SharePoint-Abhängigkeiten entfernen und verspotten. Der Standardindex Aktion loos wie die folgenden in der neuen Sharepoint-Add-In-Vorlage:Wie Unit-Test ein SharePoint-Add-in?
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();
}
habe ich versucht, die Clientcontext in einen Adapter zu verpacken, kann aber nicht Web-Property-verspotten:
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();
}
}
Wie Testen Sie Ihre SharePoint-Add-Ins einzeln?