Я пытаюсь написать тест xunit, который создаст экземпляр CalculateDistanceService, чтобы я мог вызывать его без использования макета, и мне трудно его написать. Я не знаю, как правильно создать экземпляр _operators, чтобы вернуть значения перечисления. Проблема, с которой я сталкиваюсь, когда не могу создать класс CalculateDistance для заполнения перечислений для теста. Когда я вызываю класс, значения перечисления пусты, и я не уверен, как это сделать правильно.
public CalculateDistanceService()
{
_operators = operators;
}
public interface ICalculateDistance<out T> where T: Enum
{
T DistanceMethod { get; }
DistanceResponse CalculateDistance(DistancePoint point1, DistancePoint point2, MeasureUnit measureUnit);
}
public enum DistanceMethod
{
GeodesicCurve,
Pythagoras
}
Что я пытался сделать в модульном тесте
public DistanceControllerTest()
{
_operators = new List<ICalculateDistance<DistanceMethod>>();
}
[Fact]
public void DistanceController_CorrectValue()
{
var p1 = new DistancePoint
{
Latitude = 55.39291815,
Longitude = -7.389611015997305
};
var p2 = new DistancePoint
{
Latitude = 53.3729581,
Longitude = -6.3624744
};
List<ICalculateDistance<DistanceMethod>> _operators = new
List<ICalculateDistance<DistanceMethod>>();
_operators.Add(Cant do this)
var calculateDistance = new CalculateDistanceService(_operators)
}
I am using this blog as reference aswell:
https://adamstorr.azurewebsites.net/blog/strategy-pattern-with-enum-constraints