我正在尝试提供一个可以帮助我测试的模拟:
ClaimsPrincipal princple = Thread.CurrentPrincipal as ClaimsPrincipal;
但是据我所知,“as”关键字返回 null 即使我可以在调试器中看到 Thread.CurrentPrincipal 是模拟。
为了测试这个理论,我整理了这个简短的演示:
void Main()
{
var userMock = new Mock<IUser>();
userMock.Setup(w => w.UserId).Returns(1);
var user = userMock.Object as User;
user.Dump(); // null
}
public interface IUser
{
int UserId { get; set; }
}
public class User : IUser
{
public int UserId { get; set; }
}
如何为在后台使用 as 关键字的代码提供最小起订量?
据我了解,也许我需要为代理提供一种回退方式?
我有点意识到这是不可能的,但想知道人们解决这个问题的方法是什么。