пятница, 18 февраля 2011 г.

Новая constraint based модель проверок NUnit Framework

В данной статье я расскажу про новую модель проверок на основе constraints, которая   поможет сделать тесты лучше
                                                Constraint based model
Старая модель проверок основывалась на классе Assert, который имеет набор статических перегруженных методов для проверки различных условий. К примеру, при этом подходе тесты выглядят так:
    [Test]
        public void TraditionalAssertModelTest()
        {
           
            string result = "Asd" + 3;
           
            Assert.AreEqual("asd3", result.ToLower());
        }

Статический метод  AreEqual имеет довольно много перегрузок, что не очень удобно. Новая же модель проверок использует один метод для всех проверок. Вот пример аналогичного теста с использованием новой модели:

        [Test]
        public void NewConstraintModel()
        {
            string result = "Asd" + 3;
            Assert.That(result, new EqualConstraint("asd3").IgnoreCase);
        }

вторник, 1 февраля 2011 г.

Как сгенерировать XSD схему из классов .NET


Иногда бывает  необходимость сгенерировать XSD  схему из определенных классов.  
Например, если используется приложение, которое  взаимодействует с сервером, передавая данные, сериализуя  объекты классов в xml формат. Для дальнейшей работы с данными на сервере необходим формат этих данных, а точнее XSD  схема данных.                   Решение этой задачи оказалось простым это можно сделать с помощью утилиты xsd.exe,  которая включена в состав Visual Studio и .NET Framework SDK.
 Данная утилита находится в папке ..\Program Files\Microsoft SDKs\Windows\v7.0A\bin,
а для /NET 4 ..\Program Files\MicrosoftSDKs\Windows\v7.0A\bin\NETFX 4.0 Tools.
  Например, у нас есть приложение, которой есть сборке TestProject.dll в данной сборке есть класс MyClass для, которого необходимо сгенерировать XSD схему.
Для того чтобы сгенерировать схему  надо запустить  xsd.exe утилиту из командной строки Visual Studio (либо Windows) далее набрать следующую команду
xsd  /t: MyClass TestProject.dll
опция /t: задет класс, для которого надо сгенерировать схему далее
указывается путь и имя сборки, в которой находится класс
узнать описание всех опций можно, введя команду    xsd  /?
после успешного выполнения данной команды будет сгенерирован файл schema0.xsd
Также с помощью этой утилиты можно делать и обратное, из xsd схемы можно генерировать классы. Подробнее можно почитать на msdn и здесь