#c# #asp.net-core #nunit #azure-data-lake
#c# #asp.net-core #nunit #azure-озеро данных
Вопрос:
У меня есть приложение .NET Core, в котором у меня есть метод, который будет подключаться к озеру данных Azure:
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);
Я пытаюсь написать модульный тестовый пример, в котором я пытаюсь moq GetDataLakeServiceClient
:
_azureDataFactoryRepository.Setup(x => x.GetDataLakeServiceClient(It.IsAny<string>())).Returns();
В приведенном выше коде он должен вернуться DataLakeServiceClient
, но я изо всех сил пытаюсь, как я могу это сделать.
Я также не вижу никакого метода IDataLakeServiceClient
.
Может кто-нибудь помочь мне настроить вышеуказанный метод?
Комментарии:
1. @Niranjaongodbole Почему бы вам просто не вернуться с новым
DataLakeServiceClient
, например, так:.Returns(new DataLakeServiceClient())
? В документации говорится, что его конструктор без параметров предназначен для издевательства.
Ответ №1:
DataLakeServiceClient
это abstract
класс, поэтому вы можете просто издеваться над этим и вводить этот макет в макет более высокого уровня. Итак, вы хотите что-то вроде:
var moqDataLakeServiceClient = new Mock<DataLakeServiceClient>();
_azureDataFactoryRepository
.Setup(x => x.GetDataLakeServiceClient(It.IsAny<string>()))
.Returns(moqDataLakeServiceClient.Object);
Я не уверен, какой клиент-макет вы используете, поэтому в приведенном выше примере используется Moq.