无法模拟 Azure.Blob.Storage 的 BlobBaseClient.CanGenerateSasUri

问题描述

我目前正在为我的 Blob 服务编写测试用例。

我已经通过了几乎所有 Azure.Blob.Storage 的障碍,只有一个除外。

我正在尝试测试一种方法,该方法生成依赖于 BlobClient 的 CanGenerateSasUri 属性的 blob 的 Url。 if(blobClient.CanGenerateSasUri){}

测试中的设置如下:

var url = new Uri("http://bogus:10000/devstoreaccount1/MyContainer/Blob.mp3");
var blobClient = new Mock<BlobClient>(MockBehavior.Default,url,(BlobClientOptions)null);
blobClient.SetupGet(x => x.CanGenerateSasUri).Returns(true);

但起订量在抱怨:

System.NotSupportedException : Unsupported expression: x => x.CanGenerateSasUri
Non-overridable members (here: BlobBaseClient.get_CanGenerateSasUri) may not be used in setup / verification expressions.

错误有效,因为我可以看到属性 BlobBaseClient.CanGenerateSasUri 不是虚拟的。

enter image description here

我在 GitHub 上发现了这个 (Cannot mock the BlobBaseClient.CanGenerateSasUri property for testing) 问题。

issue 中提到已经解决并合并到 master 分支。

但即使在最新版本 (12.8.4) 中也不存在更改。

有人可以帮我绕过这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...