Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Результати виконання практичних завдань. Завдання 1. Створення проекту модульних тестів





Завдання 1. Створення проекту модульних тестів.

 

У рішенні Visual Studio.NET для зберігання тестових оснащень створюють окремий тестовий проект.

Тестове оснащення – це клас С#, який визначає набір тестових методів, по одному для кожного аспекту поведінки, що потребує перевірки. Тестовий проект може містити декілька класів тестових оснащень.

Запуск тесту виконується через меню Test (Тест) середовища Visual Studio.

Якщо тестове оснащення виконується без генерування будь-яких непередбачуваних виключень і всі оператори Assert виконуються без проблем, то вікно Test Results (Результати тесту) відображає зелений маркер. В іншому випадку ми бачимо червоний маркер і подробиці про виниклу проблему.

 

Завдання 2. Реалізація модульних тестів для класів сутностей ПО.

 

Приклади програмного коду модульних тестів наведено у лістингах 1 та 2.

 

Лістинг 1 – Реалізація тестового оснащення для класу Region

 

using System;

 

namespace WorldDivision.Domain {

 

/// <summary>

/// Представляє макрогеографічний (континентальний)

/// або географічний регіон як об'єкт

/// статистичної класифікації ООН

/// </summary>

[Serializable]

public class Macroregion: UNDivisionObject {

 

// Посилання на макрогеографічний регіон

private Macroregion parent;

 

/// <summary>

/// Повертає і встановлює посилання на

/// макрогеографічний регіон

/// </summary>

public Macroregion Parent {

get { return parent; }

set {

if (value == this) {

throw new InvalidOperationException(

"Спроба встановити для об'єкту, що "

+ "представляє макрогеографічний регіон "

+ "з іменем " + this.Name

+ ", посилання на поточний об'єкт "

+ "у якості посилання на макрогеографічний "

+ "регіон вищого рівня ієрархії"

);

}

parent = value;

this.IsChanged = true;

}

}

 

/// <summary>

/// Ініціалізує екземпляр сутності, що представляє

/// макрогеографічний (континентальний)

/// або географічний регіон

/// </summary>

/// <param name="name">назва</param>

/// <param name="numericCode">цифровий код</param>

/// <param name="parent">макрорегіон</param>

public Macroregion(string name,

string numericCode, Macroregion parent)

: base(name, numericCode) {

this.Parent = parent;

}

 

/// <summary>

/// Ініціалізує екземпляр сутності, що представляє

/// макрогеографічний (континентальний)

/// або географічний регіон

/// без визначення обов'язкових полів

/// (потрібен для функціонування сховища даних)

/// </summary>

internal Macroregion() { }

 

}

}

 

Лістинг 2 – Реалізація тестового оснащення для класу Country

 

using System;

using Microsoft.VisualStudio.TestTools.UnitTesting;

using WorldDivision.Domain;

 

namespace WorldDivision.Tests.Domain {

 

/// <summary>

/// Тестове оснащення для класу Country

/// </summary>

[TestClass]

public class CountryTest {

 

// Посилання на регіон вищого рівня

private Macroregion world;

// Посилання на континентальний регіон

static Macroregion europe;

// Посилання на макрогеографічний регіон

static Macroregion easternEurope;

 

 

/// <summary>

/// Метод ініціалізації тестів, який забезпечує

/// створення ієрархіє макрогеографічних регіонів

/// (виконується перед виконанням кожного окремого тесту)

/// </summary>

[TestInitialize]

public void CreateObjects() {

world = new Macroregion("Світ", "001", null);

europe = new Macroregion("Європа", "150", world);

easternEurope =

new Macroregion("Східна Європа", "151", europe);

}

 

/// <summary>

/// Перевіряє правильність створення об'єкту країни

/// за умови введення коректних даних

/// </summary>

[TestMethod]

public void TestCountry_Create() {

string name = "Україна";

string numericCode = "804";

string alpha2Code = "ua";

Macroregion macroregion = easternEurope;

double? area = 603628;

 

Country country = new Country(name, numericCode,

alpha2Code, macroregion){ Area = area };

 

Assert.AreEqual(country.Name, name);

Assert.AreEqual(country.NumericCode, numericCode);

Assert.AreEqual(country.Alpha2Code, alpha2Code);

Assert.ReferenceEquals(country.Macroregion,

macroregion);

Assert.AreEqual(country.Area, area);

}

 

/// <summary>

/// Перевіряє правильність ініціалізації поля

/// площі країни значенням за замовчанням (null)

/// </summary>

[TestMethod]

public void TestCountry_AreaHasValue() {

string name = "Україна";

string numericCode = "804";

string alpha2Code = "ua";

Macroregion macroregion = easternEurope;

 

Country country = new Country(name, numericCode,

alpha2Code, macroregion);

 

Assert.IsFalse(country.Area.HasValue);

}

 

/// <summary>

/// Перевіряє наявність генерації виключення у випадку

/// відсутності посилання макрогеографічний регіон

/// </summary>

[TestMethod]

[ExpectedException(typeof(ArgumentNullException))]

public void TestCountry_MacroregionIsNull() {

string name = "Україна";

string numericCode = "804";

string alpha2Code = "ua";

Macroregion macroregion = null;

double? area = 603628;

 

Country country = new Country(name, numericCode,

alpha2Code, macroregion){ Area = area };

}

 

/// <summary>

/// Перевіряє наявність генерації виключення у випадку

/// присвоєння нульового значення площі країни

/// </summary>

[TestMethod]

[ExpectedException(typeof(ArgumentOutOfRangeException))]

public void TestCountry_Area_0() {

string name = "Україна";

string numericCode = "804";

string alpha2Code = "ua";

Macroregion macroregion = easternEurope;

double? area = 0;

 

Country country = new Country(name, numericCode,

alpha2Code, macroregion){ Area = area };

}

 

/// <summary>

/// Перевіряє наявність генерації виключення у випадку

/// присвоєння площі країни значення,

/// яке перевищує площу Землі

/// </summary>

[TestMethod]

[ExpectedException(typeof(ArgumentOutOfRangeException))]

public void TestCountry_Area_510065601() {

string name = "Україна";

string numericCode = "804";

string alpha2Code = "ua";

Macroregion macroregion = easternEurope;

double? area = 510065601;

 

Country country = new Country(name, numericCode,

alpha2Code, macroregion){ Area = area };

}

 

}

}

 

Date: 2015-09-02; view: 370; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию