Как протестировать с FluentAssertion, если объект эквивалентен другому с уже установленным свойством solidcolorbrush - PullRequest
0 голосов
/ 05 октября 2018

У меня есть модульный тест с FluentAssertions, где я хочу проверить эквивалент объекта.

[TestFixture]
public class TaskCompletionTest
{
        private string _callId;
        private List<Step> _steps;
        private SolidColorBrush _solidColor;

        [SetUp]
        public void ReInitializeTest()
        {
            _callId = _faker.Name.FullName();
            _steps = new List<Step> { new Step { Name = "Step1" }, new Step { Name = "Step2" } };
            _solidColor = new SolidColorBrush(Color.FromRgb(0, 0, 0)); 
        }

                [Test]
        public void ShouldCreateTaskCompletion()
        {
            //Arrange
            var taskCompletion = new TaskCompletionwModel(_callId, _steps);

            //Acts
            var taskCompletionExpected = new
            {
                CallId = _callId,
                Steps = _steps,
                StatusColor = _solidColor
            };

            //Assert
            taskCompletionExpected.Should().BeEquivalentTo(taskCompletion);
        }
}       


public class Step
{
    public string Name { get; set; }
}

public class TaskCompletionwModel
{
    public string CallId { get; private set; }
    public List<Step> Steps { get; private set; }
    public SolidColorBrush StatusColor { get; set; } = new SolidColorBrush(Color.FromRgb(0, 0, 0));


    public TaskCompletionwModel(string callId, List<Step> steps)
    {
        CallId = callId;
        Steps = steps;
    }
}

Когда я запускаю тест, у меня есть это.Ожидаемый элемент StatusColor должен быть # FF000000, но найден # FF000000.

С конфигурацией: - Использовать объявленные типы и члены - Сравнить перечисления по значению - Соответствовать элементу по имени (или выбрасывать) - Без автоматического преобразования.- Строго следите за порядком элементов в байтовых массивах

Почему этот тест не работает?

С уважением.Jolynice

1 Ответ

0 голосов
/ 05 октября 2018

Здравствуйте, я обнаружил проблему, мне нужно привести тип SolidColorBrush.

var taskCompletionExpected = new
{
   CallId = _callId,
   Steps = _steps,
   StatusColor = (SolidColorBrush) _solidColor,
};

Готово,

С уважением.

...