Модульные тесты для конвертеров в wpf

Я определил конвертер в своем проекте. Я хочу начать с написания модульного теста для этого конвертера.

Код для конвертера:

   public class BirdEyeViewColumnWidthConverter : IValueConverter
    {
        public int BirdEyeModeWidth { get; set; }
        public int DefaultWidth { get; set; }

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value != null)
            {
                if ((bool) value)
                {
                    return BirdEyeModeWidth;
                }
            }
            return DefaultWidth;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

Как мне начать с этого?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
813
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вчера пробовал нечто подобное, но вместо объекта у меня был словарь, так что, может, это поможет и TestCaseSourceAttribute

Кроме того, когда вы реализуете аргументы, проверьте, совпадает ли возвращаемый тип с ожидаемым вами - например, Assert.IsInstanceOf(typeof(DateTime), obj.CreationTime);

Итак, здесь мне нужно сравнить возвращаемый тип каких двух объектов?

shubham sharma 21.05.2018 13:23

Моя беда, я неправильно прочитал приведенный пример. Как я вижу из данного кода ur, u передаст value как НЕ нулевой объект, и вы хотите получить свойство BirdEyeModeWidth, поэтому вам нужно проверить, являются ли ur методы, возвращающие данное свойство. U сначала нужно создать экземпляр объекта класса типа, в котором хранятся эти свойства, а затем, возможно, что-то вроде этого Assert.IsInstanceOf(typeof(int),obj.BirdEyeModeWidth)

Serlok 21.05.2018 13:45
Ответ принят как подходящий

How do I start with this?

  1. Добавьте в решение проект модульного тестирования (.NET Framework). (Новый проект-> Установлен-> Visual C# -> Тестировать в Visual Studio).
  2. Добавьте ссылку на проект, в котором ваш BirdEyeViewColumnWidthConverter определен, из вновь созданного проекта модульного тестирования. Проект-> Добавить ссылку-> Проекты-> Решение.
  3. Переименуйте и запишите модульный тест в TestMethod1() сгенерированного класса UnitTest1.

В этом методе вы создаете экземпляр своего класса конвертера, вызываете его метод Convert и утверждаете, что возвращаемое значение - это то, что вы ожидаете, например

[TestClass]
public class BirdEyeViewColumnWidthConverterTests
{
    [TestMethod]
    public void BirdEyeViewColumnWidthConverterTest()
    {
        const int BirdEyeModeWidth = 20;
        const int DefaultWidth = 10;

        BirdEyeViewColumnWidthConverter converter = new BirdEyeViewColumnWidthConverter()
        {
            BirdEyeModeWidth = BirdEyeModeWidth,
            DefaultWidth = DefaultWidth,
        };

        int convertedValue = (int)converter.Convert(true, typeof(int), null, CultureInfo.InvariantCulture);
        Assert.AreEqual(BirdEyeModeWidth, convertedValue);

        convertedValue = (int)converter.Convert(false, typeof(int), null, CultureInfo.InvariantCulture);
        Assert.AreEqual(DefaultWidth, convertedValue);
    }
}

Другие вопросы по теме