Я пытаюсь проверить частный метод на издеваемом объекте. Пожалуйста, успокойтесь, я знаю, что вы получаете свои вилы.Мог несовместим с PrivateObject?
Я хорошо знаю, что все, о чем можно сказать, можно ответить, крича РЕАКТОРОМ у меня. Мне просто нужен прямой ответ. Кто-то смотрит мне в глаза и говорит, что это невозможно. Это непрогрессивная проблема, поэтому мне просто нужно ее услышать.
Вот что я имею в виду.
public class SecretManager
{
protected virtual string AwfulString { get { return "AWFUL, AWFUL THING"; }
public SecretManager()
{
//do something awful that should be done using injection
}
private string RevealSecretMessage()
{
return "don't forget to drink your ovaltine";
}
}
Здесь я пытаюсь его протестировать.
var mgr = new Mock<SecretManager>();
mgr.Protected().SetupGet<string>("AwfulThing").Returns("");
var privateObj = new PrivateObject(mgr.Object);
string secretmsg = privateObj.Invoke("RevealSecretMessage");
Assert.IsTrue(secretmsg.Contains("ovaltine"));
и исключение:
System.MissingMethodException: Method 'Castle.Proxies.SecretManagerProxy.RevealSecretMessage' not found
Это то, что я пытаюсь сделать, с ума, как это, возможно? Или это слишком большая гордость за единичный тест?