2013-06-28 3 views
1

Я новичок в C# и тестирование единицы, и я пытался осуществить тесты для следующего конструктора:Unit InitializeComponent() для частичного класса

public Stepup() 
{ 
    InitializeComponent(); 
} 

стартапа частичного класса и наследует интерфейс. Как реализовать единичный тест для такого конструктора? Также в дополнение к этому, каковы некоторые способы модульного тестирования простого конструктора без параметров?

+0

Stepup не выглядит как класс или метод. Если это должен быть метод (отсутствующий тип возврата void), единственное, что вы можете сделать, это проверить состояние вашего объекта, измененного InitializeComponent. –

+0

Прошу прощения за путаницу. Код здесь для Stepup Constructor. Я отредактировал вопрос, чтобы быть ясным. Также как я могу проверить состояние измененного объекта? – bachkoi32

+2

Это полностью автоматически сгенерированный код, как конструктор, так и метод InitializeComponent(). Если ваш тест устройства завершился неудачно, вам придется исправить Visual Studio. Это не так. –

ответ

2

При запуске конструктора определенные инварианты относительно построенного объекта должны быть истинными. Вам нужно указать , каковы эти инварианты, а затем test что они верны, когда конструктор заканчивает выполнение. Главное здесь, что вы не используете во внутренних деталях реализации конструктора, только то, что говорит ваша спецификация, истинно о построенных объектах.

Например:

class Circle { 
    private readonly double radius; 
    public double Radius { 
     get { 
      Contract.Ensures(Contract.Result<double>() >= 0));    
      return this.radius; 
     } 
    } 

    public Circle(double radius) { 
     Contract.Requires(radius >= 0); 
     this.radius = radius; 
    } 
} 

Здесь инвариант после того, как конструктор заканчивает то, что Circle.Radius возвращает значение параметра radius конструктора, который был передан в это спецификация, и он может быть проверен..