Я думаю, вам нужно отделить специфику реализации от интерфейса, который действительно важен для потребителя.Я не уверен, для чего вашему элементу управления нужен ProviderUserKey, если он приводит его к определенному классу и т. Д., Но я хотел бы взглянуть на то, чтобы ваш интерфейс действительно соответствовал потребностям контроллера, а не наоборот.Что-то вроде (не зная больше деталей):
public interface IMembershipDetailsService {
Guid UserKey { get; }
}
Как только вы сделаете этот уровень абстракции, тогда насмешка станет намного проще, потому что вы можете просто сделать:
membershipService.Setup (svc => svc.UserKey).Returns (myGuid);
Просто еще одна мысльвместо того, чтобы пытаться вернуть весь объект MembershipUser, вам нужно продолжить заглушку.