Today, I happen to find an interesting post on mocking SharePoint context using TypeMock. Being a JustMocker, i thought rather to follow the footsteps and see if can do the same with JustMock. I am no SharePoint expert. Occasionally, I use a Windows 2003 VM with SharePoint server installed which gives me the required flavor of SharePoint for testing SP capabilities of JM.
Anyway, here is the original post that i am going to recycle using JustMock.
The scenario here is pretty simple. There is a method that returns an URL from the current SPContext which i am going to mock in order to return my expected URL.
Therefore, the class for which the behavior to be mocked is similar to:
- public class Site
- public static string GetHomePageUrl()
- return SPContext.Current.Site.Url;
Finally, the test that creates fake instance of SPSite and passes it to the current context:
- public void ShouldAssertSPSiteUrlWithExpected()
- var fakeSiteUrl = "http://www.telerik.com";
- var fakeSharepointSite = Mock.Create<SPSite>();
- // Arrange
- Mock.Arrange(() => SPContext.Current.Site).Returns(fakeSharepointSite);
- Mock.Arrange(() => fakeSharepointSite.Url).Returns(fakeSiteUrl);
- // Act
- string actualUrl = Site.GetHomePageUrl();
- Assert.AreEqual(fakeSiteUrl, actualUrl);
I have used JustMock SP1 for the purpose and thanks to the original author for this sample.
Hope that helps