I want to test a method to check that it saves a transaction correctly. Inside it calls Membership.GetUser() to verify the user which causes the test to fail each time. Is
Yes, like Serg said, you can mock this by providing an interface for the real service to implement. This interface would have the public methods you are calling, such as:
public interface IMyServiceInterface
{
IMembershipUser GetUser();
// other methods you want to use...
}
In your unit tests, you would say:
var mockService = new Mock();
mockService.Setup(mock => mock.GetUser()).
Returns(new MembershipUserImplementation("MyTestUser", otherCtorParams));
In my example I would create a wrapper for MembershipUser as well as it seems like it also needs to be behind an abstraction.