Tengo algunas pruebas unitarias en las que quiero simular la clase Azure BlobItem (Azure.Storage.Blobs.Models).
Aquí está mi clase de prueba que estoy usando. Quiero que el captador de Values devuelva una lista con un BlobItem simulado. Eso está funcionando.
public class TestPage : Page<BlobItem> { public override IReadOnlyList<BlobItem> Values { get { return new List<BlobItem>() { new Mock<BlobItem>().Object }; } } public override string ContinuationToken => throw new NotImplementedException(); public override Response GetRawResponse() { throw new NotImplementedException(); } } Sin embargo, cuando hago esto, la propiedad Name en mi simulacro de BlobItem siempre es nula.
Puedo intentar configurarlo para que Name devuelva un valor simulado como este:
var mock = new Mock<BlobItem>(); mock.SetupGet(x => x.Name).Returns("mock");Pero luego me sale un error:
Non-overridable members may not be used in setup/verification expressions.Entiendo por qué ocurre este error. Pero no sé cuál es la solución.
Quiero que un BlobItem simulado devuelva un valor de Name no nulo. ¿Cómo puedo conseguir esto?
Aparentemente, hay una clase de fábrica llamada BlobsModelFactory .
Puede simular un BlobItem con el nombre que desee llamando:
var blob = BlobsModelFactory.BlobItem("mocked.mocked.mocked.mocked")