Хочу подчеркнуть, что я довольно новичок в создании модульного теста, но я искал повсюду в Google и документации, но не могу найти решение или альтернативу. Поэтому в настоящее время я пытаюсь создать модульный тест для микросервиса, над которым работает мой товарищ по команде. Конструктор класса имеет следующую структуру:
public Constructor(IOptions<AMQ_Config> amqConfig, IConfiguration configuration)
{
this.amqConfig = amqConfig.Value;
this.amqConfig.UserName = configuration["AMQ:UserName"];
this.amqConfig.Password = configuration["AMQ:Password"];
//this.errorTypeConfig = errorTypeConfig.Value;
this.configuration = configuration;
AMQSubscriber();
}
Когда я создаю новый экземпляр конструктора в модульном тесте, он всегда будет вызывать и повторять метод AMQSubscriber();
. Наивно я только что создал дубликат конструктора, который исключает метод и добавляет еще один параметр:
public UnitTestConstructor(IOptions<AMQ_Config> amqConfig, IConfiguration configuration, IConnection connection)
{
this.amqConfig = amqConfig.Value;
this.amqConfig.UserName = configuration["AMQ:UserName"];
this.amqConfig.Password = configuration["AMQ:Password"];
//this.errorTypeConfig = errorTypeConfig.Value;
this.configuration = configuration;
this.connection = connection;
}
, но это было сделано только для целей модульного тестирования. Я читал о том, как это не очень хорошая идея, потому что это противоречит цели модульного тестирования, но я не могу думать, как это изолировать, поскольку большинство методов требуют или зависят от параметров: IOptions<AMQ_Config> amqConfig, IConfiguration configuration
и нашего Микросервис предназначен для Apache NMS AMQ для отправки, обработки и получения сообщений.