テストに役立つモックを提供しようとしています:
ClaimsPrincipal princple = Thread.CurrentPrincipal as ClaimsPrincipal;
ただし、デバッガーで Thread.CurrentPrincipal がモックであることがわかりますが、「as」キーワードは null を返します。
理論をテストするために、この短いデモをまとめました。
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 キーワードを使用するコードに moq を提供するにはどうすればよいですか?
私が理解していることから、おそらくプロキシがキャストバックする方法を提供する必要がありますか?
これは不可能だと思いますが、これを解決するために人々がどのようなアプローチをとっているのか疑問に思いました。