如何在 .Net 核心中 Moq DataLakeServiceClient
How to Moq DataLakeServiceClient in .Net core
我有一个 .NET Core 应用程序,其中有一个连接到 Azure Data Lake 的方法:
public DataLakeServiceClient GetDataLakeServiceClient(string StorageAccount)
{
string clientId = _authenticationConfig.ClientId.Substring(6, _authenticationConfig.ClientId.Length - 6);
TokenCredential credential = new ClientSecretCredential(
_authenticationConfig.TenantId, clientId, _authenticationConfig.ClientSecret, new TokenCredentialOptions());
string dfsUri = "https://" + StorageAccount + ".dfs.core.windows.net";
DataLakeServiceClient dataLakeServiceClient = new DataLakeServiceClient(new Uri(dfsUri), credential);
return dataLakeServiceClient;
}
我是这样使用的:
DataLakeServiceClient dataLakeServiceClient = _azureDataFactoryRepository.GetDataLakeServiceClient(_azureStorageClient.AzureStorageAccount02Value);
我尝试编写一个单元测试用例,尝试最小起订 GetDataLakeServiceClient
:
_azureDataFactoryRepository.Setup(x => x.GetDataLakeServiceClient(It.IsAny<string>())).Returns();
在上面的代码中它应该 return DataLakeServiceClient
但我正在努力如何做到这一点。
我也没有看到任何方法IDataLakeServiceClient
。
有人可以帮我设置上面的方法吗?
DataLakeServiceClient
是一个 abstract
class 所以你可以模拟这个并将这个模拟注入到更高级别的模拟中。所以你想要这样的东西:
var moqDataLakeServiceClient = new Mock<DataLakeServiceClient>();
_azureDataFactoryRepository
.Setup(x => x.GetDataLakeServiceClient(It.IsAny<string>()))
.Returns(moqDataLakeServiceClient.Object);
我不确定您使用的是什么模拟客户端,所以上面使用的是 Moq。
我有一个 .NET Core 应用程序,其中有一个连接到 Azure Data Lake 的方法:
public DataLakeServiceClient GetDataLakeServiceClient(string StorageAccount)
{
string clientId = _authenticationConfig.ClientId.Substring(6, _authenticationConfig.ClientId.Length - 6);
TokenCredential credential = new ClientSecretCredential(
_authenticationConfig.TenantId, clientId, _authenticationConfig.ClientSecret, new TokenCredentialOptions());
string dfsUri = "https://" + StorageAccount + ".dfs.core.windows.net";
DataLakeServiceClient dataLakeServiceClient = new DataLakeServiceClient(new Uri(dfsUri), credential);
return dataLakeServiceClient;
}
我是这样使用的:
DataLakeServiceClient dataLakeServiceClient = _azureDataFactoryRepository.GetDataLakeServiceClient(_azureStorageClient.AzureStorageAccount02Value);
我尝试编写一个单元测试用例,尝试最小起订 GetDataLakeServiceClient
:
_azureDataFactoryRepository.Setup(x => x.GetDataLakeServiceClient(It.IsAny<string>())).Returns();
在上面的代码中它应该 return DataLakeServiceClient
但我正在努力如何做到这一点。
我也没有看到任何方法IDataLakeServiceClient
。
有人可以帮我设置上面的方法吗?
DataLakeServiceClient
是一个 abstract
class 所以你可以模拟这个并将这个模拟注入到更高级别的模拟中。所以你想要这样的东西:
var moqDataLakeServiceClient = new Mock<DataLakeServiceClient>();
_azureDataFactoryRepository
.Setup(x => x.GetDataLakeServiceClient(It.IsAny<string>()))
.Returns(moqDataLakeServiceClient.Object);
我不确定您使用的是什么模拟客户端,所以上面使用的是 Moq。