moq
Proprietà derisorie
Ricerca…
Proprietà di stub automatico
A volte vuoi prendere in giro una classe o un'interfaccia e le sue proprietà si comportano come se fossero semplici getter e setter. Poiché questo è un requisito comune, Moq fornisce un metodo di scelta rapida per configurare tutte le proprietà di un mock per memorizzare e recuperare i valori:
// SetupAllProperties tells mock to implement setter/getter funcationality
var userMock = new Mock<IUser>().SetupAllProperties();
// Invoke the code to test
SetPropertiesOfUser(userMock.Object);
// Validate properties have been set
Assert.AreEqual(5, userMock.Object.Id);
Assert.AreEqual("SomeName", userMock.Object.Name);
Per completezza, il codice da testare è sotto
void SetPropertiesOfUser(IUser user)
{
user.Id = 5;
user.Name = "SomeName";
}
Proprietà con setter privati
A volte vuoi creare una simulazione di una classe che ha un setter privato:
public class MockTarget
{
public virtual string PropertyToMock { get; private set; }
}
O un'interfaccia che definisce solo un getter:
public interface MockTarget
{
string PropertyToMock { get; }
}
In entrambi i casi, puoi ignorare il setter e semplicemente impostare il getter della proprietà per restituire il valore desiderato:
var mock = new Mock<MockTarget>();
mock.SetupGet(x => x.PropertyToMock).Returns("ExpectedValue");
Assert.AreEqual("ExpectedValue", mock.Object.PropertyToMock);
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow