4
私はこの件に関してGoogleが見つけることができるほとんどすべてのリンクを調べて、正しく動作しない以下の2つのソリューションを考え出しました。私は単に文字列を返す保護されたメソッドを持っています。保護されたメソッドをモック
protected virtual string ConfirmText
{
get
{
return "someTextHere";
}
}
これはビューモデルに含まれています。これまでのところ、私が試してみました私のテストがある -
[TestMethod]
public void Confirm_Text_test()
{
Mock<TestViewModel> testViewModel= new Mock<TestViewModel>(null, null, null);
testViewModel.Protected()
.Setup<string>("ConfirmText")
.Returns("Ok")
.Verifiable();
testViewModel.Verify();
}
は、私はそれに作用しない、上記の例で、私は唯一のセットアップを持っていることを理解し、そして主張します。私はそれはそれは、その保護レベルにアクセスできない言うような
var result = testViewModel.ConfirmText;
としてセットアップに作用する方法を見つけることができませんでした。
私が試してみました次の方法が
var result = testViewModel.Object.GetType()
.InvokeMember("ConfirmText",
BindingFlags.InvokeMethod |
BindingFlags.NonPublic |
BindingFlags.Instance,
null,
testViewModel.Object,
null);
あるほとんどの例は、私が最初に試した方法と同様のショーの何かに見てきたように、私は何かを逃しています。
これは、メソッドが、プロパティではありません。 – dymanoid
私は信じられないほど馬鹿です。それはおそらく何も働いていない理由を説明するでしょう!私はそれを指摘してくれてありがとう、探しに戻ってきます。 –
なぜ保護されたプロパティをモックしたいですか?通常、オブジェクトをモックして、メソッド/プロパティへの外部呼び出しを制御または検証します。誰がこれを呼び出していますか、モックで何をしようとしていますか? – KMoussa