Должен ли я быть модульным тестированием этого класса? - PullRequest
1 голос
/ 09 декабря 2008

Я знаю, что это, возможно, очень простой вопрос, но сейчас у меня немного пусто. Должен ли я быть модульным тестированием этого класса.

public class MapinfoWindowHandle : IWin32Window
    {
        IntPtr handle;

        public MapinfoWindowHandle(IntPtr mapinfoHandle)
        {
            this.handle = mapinfoHandle;     
        }

        #region IWin32Window Members

        IntPtr IWin32Window.Handle
        {
            get { return this.handle; }
        }

        #endregion
    }

Если я должен быть тем, что я должен проверять?
Я использую это так:

IntPtr handle = new IntPtr(100);
myform.show(new MapinfoWindowHandle(handle));

Ответы [ 6 ]

4 голосов
/ 09 декабря 2008

Единственное, что я могу видеть, это убедиться, что вы достаете дескриптор, который вы вставили через конструктор. Я знаю, что очевидно, что вы реализовали это таким образом, но тест заверил бы вас, что он останется таким. Я бы проверил это только потому, что вы вводите его через конструктор. Если бы это было просто {получить; задавать; } Я бы, наверное, не стал.

 [TestMethod]
 public void ConstructorTest()
 {
      IntPtr handle = new IntPtr(100);
      MapinfoWindowHandle winHandle = new MapinfoWindowHandle(handle);
      Assert.AreEqual( handle, ((IWin32Window)winHandle).Handle );
 }
2 голосов
/ 09 декабря 2008

Я бы, конечно, попробовал создать его с помощью NULL (0) или INVALID_HANDLE_VALUE (-1), и, вероятно, при необходимости он скинул бы его на один или оба (неясно, можно ли инициализировать класс с помощью IntPtr. Ноль, но почти наверняка, что -1 будет недействительным.

1 голос
/ 09 декабря 2008

Да. Если класс стоит написать, его стоит протестировать

0 голосов
/ 09 декабря 2008

Да, напишите тест. Если позже кто-то изменит код или добавит в него какой-то новый код, у вас будет хотя бы один тест, чтобы убедиться, что класс работает так, как задумано.

0 голосов
/ 09 декабря 2008

Код GUI общеизвестно сложен для модульного тестирования. Я никогда не находил это слишком полезным в моих собственных приложениях. Просто держите свою бизнес-логику за пределами графического интерфейса, чтобы вы могли легко это проверить. Обычно я тестирую код GUI с помощью ручных или автоматических интеграционных / приемочных тестов. Трудно написать тест, чтобы убедиться, что что-то «выглядит правильно».

0 голосов
/ 09 декабря 2008

Прагматик во мне говорит «нет», потому что класс «ничего» не делает, поэтому «нечего» проверять. Но уверен, что вы все еще можете протестировать его, только для целей документации и в качестве контракта для будущих разработчиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...