È necessario utilizzare Moq per creare l'oggetto Mock e impostare la proprietà CallBase su true per utilizzare il comportamento dell'oggetto.
Dalla documentazione Moq: CallBase è definito come "Richiama l'implementazione della classe base se nessuna attesa sostituisce il membro. Questo è chiamato "Partial Mock". Permette di deridere certe parti di una classe senza dover prendere in giro tutto.
codice di esempio:
[Test]
public void FailintgTest()
{
var mock = new Moq.Mock<MyClass>();
mock.Setup(m => m.Number).Returns(4);
var testObject = mock.Object;
Assert.That(testObject.Number, Is.EqualTo(4));
Assert.That(testObject.Name, Is.EqualTo("MyClass"));
}
[Test]
public void OKTest()
{
var mock = new Moq.Mock<MyClass>();
mock.Setup(m => m.Number).Returns(4);
mock.CallBase = true;
var testObject = mock.Object;
Assert.That(testObject.Number, Is.EqualTo(4));
Assert.That(testObject.Name, Is.EqualTo("MyClass"));
}
public class MyClass
{
public virtual string Name { get { return "MyClass"; } }
public virtual int Number { get { return 2; } }
}
fonte
2010-03-17 13:46:44
Buono a sapersi - vorrei che ci fossero più informazioni su Moles là fuori - non ho ancora sentito nulla su di esso per quanto riguarda le persone che lo utilizzano qui su SO – dferraro
FWIW, ecco il sito ufficiale: http: // research. microsoft.com/en-us/projects/moles/ –
Quel Moq non può farlo semplicemente non è più vero. – MushinNoShin