Entiendo que SetupSet es una forma antigua de configurar una propiedad en Moq. Ahora es obsoleto, pero mi intellisense muestra ambos con ninguno de ellos marcado Obsolette. ¿Alguien puede señalarme la diferencia real entre ellos?Diferencia entre SetupSet y SetupProperty en Moq
Respuesta
Probablemente encontré una de las siguientes diferencias.
Si está intentando simular una propiedad de solo lectura, debe usar SetupGet ya que SetupProperty no funciona en ese caso. Mientras que SetupProperty se puede utilizar para propiedades que no sean de solo lectura si desea establecer la expectativa.
Por ejemplo, a continuación, no funcionará
public interface IXyz
{
int Id { get; }
}
//Test Side Code
var _mock = new Mock<IXyz>();
_mock.SetupProperty(x => x.Id, 1054);
Si intenta ejecutar el código anterior, se van a plantear diciendo System.ArgumentException: Propiedad IXyz.Id es de sólo lectura
Así que si Cambia el código a continuación, funcionará
_mock.SetupGet(x => x.Id).Returns(1054);
SetupSet no está marcado como obsoleto. Puede estar pensando en ExpectSet, que está marcado como obsoleto con el mensaje "ExpectSet ha cambiado el nombre a SetupSet".
SetupSet
le permite indicar la expectativa de que la propiedad se establecerá:
mock.SetupSet(x => x.Prop = "bar").Verifiable();
mock.Object.Prop = "foo";
mock.Verify(); // fails
SetupProperty
se ve como una forma de código auxiliar una propiedad en la maqueta (ver la misma sección de la documentación como para SetupSet
).
Sí, pensé que SetupProperty actúa tanto para getter como para setter, pero ¿para qué sirve SetupSet? – DotNetInfo
@Nimesh, agregué un ejemplo de uso de 'SetupSet' para verificar que se llamó al setter de propiedades. –
@adrift, actualmente ninguno de los enlaces funciona. Gracias por la explicación sin embargo. –
- 1. SetupSet() es obsoleto. En lugar de qué?
- 2. MOQ: ¿cómo crear manualmente una propiedad de respaldo usando SetupGet/SetupSet?
- 3. Diferencia entre. y: en Lua
- 4. Diferencia entre == y === en JS
- 5. Diferencia entre '' y "" en Python
- 6. Diferencia entre '.' y "." en java
- 7. MySQL: diferencia entre ', `,' y"
- 8. Diferencia entre. y #
- 9. Diferencia entre & y &
- 10. ¿Diferencia entre == y caso?
- 11. La diferencia entre $ * y $ @
- 12. Diferencia entre objeto y *?
- 13. VBA: Diferencia entre y y +
- 14. Diferencia entre "y" y "donde" en une
- 15. Diferencia entre "y" y && en Ruby?
- 16. Comparación de sintaxis entre Moq y Rhino Mocks
- 17. ¿Cuáles son las diferencias entre MOQ y AutoFixture?
- 18. Diferencia entre -Wconversion entre gcc y g ++
- 19. Diferencia entre DataSource y DataSet
- 20. Diferencia entre SwingWorker y SwingUtilities.invokeLater
- 21. Diferencia entre java.exe y javaw.exe
- 22. Diferencia entre RASPHONE.exe y RASDIAL.exe
- 23. Diferencia entre jQuery.one() y jQuery.on()
- 24. Diferencia entre viewDidLoad y viewDidAppear
- 25. diferencia entre $ .getJSON y $ .get
- 26. ¿Diferencia entre viewbag y viewstate?
- 27. ¿Diferencia entre sqlplus y sqldeveloper?
- 28. Diferencia entre web.config y machine.config?
- 29. ¿Diferencia entre% 5B% y% 5B0%?
- 30. Diferencia entre Mealy y Moore
Sugiera editar esto al final de su respuesta, es lo que hacen todos los demás –
No creo que sea 100% correcto. De acuerdo con la documentación, SetupProperty se utiliza para anotación, no para establecer expectativas. –