Создание модульного теста




Лабораторная работа №1

Тема: «Автоматический модульный тест для консольных приложений»

Модульный тест вызывает метод класса, передавая параметры, и проверяет, соответствует ли возвращаемое значение ожидаемому. Модульные тесты пишутся вручную или создаются автоматически.

Последовательность выполнения лабораторной работы:

• Открыть Visual Studio 2008 (Team System Test Edition)

• В меню Файл выбрать пункт Создать, а затем команду Проект. Открылось диалоговое окно Создать проект.

• В списке Типы проектов выбрал Visual C#.

• В списке Шаблоны выбрать Консольное приложение.

• В поле Имя ввести ConsoleApplication и нажать кнопку ОК.

• Новый проект " ConsoleApplication " будет создан и появится в обозревателе решений.

• В обозревателе решений дважды щелкнуть файл Program.cs, чтобы открыть его в редакторе кода Visual Studio.

• Скопировать исходный код.

• Заменить исходное содержимое файла Program.cs кодом:

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace UnitTest

{

class Program

{

static void Main(string[] args)

{

double unitPrice = 5.99;

int quantity = 12;

double totalPrice;

totalPrice = CalculateTotalPrice(unitPrice, quantity);

}

 

static double CalculateTotalPrice(double uPrice, int Qty)

{

double totalPrice;

double tax = 0.12;

totalPrice = uPrice * Qty + (uPrice * tax * Qty); //

Console.WriteLine("Total Price of {0} Items is {1}", Qty.ToString(), totalPrice.ToString());

return totalPrice;

}

}

}

 

• В меню Построение выбрать команду Построить решение.

Будет создан проект с именем " ConsoleApplication ". Он содержит исходный код, подлежащий тестированию.

 

 

Создание модульного теста

• В обозревателе решений дважды щелкнуть файл Program.cs в проекте "ConsoleApplication". Это приведет к открытию файла исходного кода для просмотра и редактирования.

• В файле Program.cs, перейти к методу CalculateTotalPrice ().

• Щелкнуть метод правой кнопкой мыши и выбрать команду Создать модульный тест.

Открылось диалоговое окно Создать модульные тесты.

• В области Выходной проект щелкнуть Создать новый тестовый проект Visual C#.

• В диалоговом окне Создать модульные тесты нажал кнопку ОК.

Откроется диалоговое окно Новый тестовый проект.

• Оставить имя по умолчанию и нажать кнопку Создать.

При этом будет создан проект с именем "TestProject1", отображаемый в обозревателе решений.

При этом будет создан проект с именем "TestProject1", отображаемый в обозревателе решений.

В этот тестовый проект добавляется файл с именем ProgramTest.cs, содержащий тестовый класс. В класс включается метод инициализации, метод очистки и методы для тестирования методов CalculateTotalPriceTest(). Каждому методу тестирования автоматически присваивается атрибут TestMethod(). Каждый тест соответствует отдельному методу в тестируемом коде, подлежащему проверке. Методы теста включены в тестовый класс, которому присвоен атрибут TestClass().

 

• В файле ProgramTest.cs указать значения переменных, подлежащих тестированию

• using UnitTest;

• using Microsoft.VisualStudio.TestTools.UnitTesting;

• namespace TestProject1

• {

• /// <summary>

• ///Это класс теста для ProgramTest, в котором должны

• ///находиться все модульные тесты ProgramTest

• ///</summary>

• [TestClass()]

• public class ProgramTest

• {

• private TestContext testContextInstance;

• /// <summary>

• ///Получает или устанавливает контекст теста, в котором предоставляются

• ///сведения о текущем тестовом запуске и обеспечивается его функциональность.

• ///</summary>

• public TestContext TestContext

• {

• get

• {

• return testContextInstance;

• }

• set

• {

• testContextInstance = value;

• }

• }

• #region Дополнительные атрибуты теста

• //

• //При написании тестов можно использовать следующие дополнительные атрибуты:

• //

• //ClassInitialize используется для выполнения кода до запуска первого теста в классе

• //[ClassInitialize()]

• //public static void MyClassInitialize(TestContext testContext)

• //{

• //}

• //

• //ClassCleanup используется для выполнения кода после завершения работы всех тестов в классе

• //[ClassCleanup()]

• //public static void MyClassCleanup()

• //{

• //}

• //

• //TestInitialize используется для выполнения кода перед запуском каждого теста

• //[TestInitialize()]

• //public void MyTestInitialize()

• //{

• //}

• //

• //TestCleanup используется для выполнения кода после завершения каждого теста

• //[TestCleanup()]

• //public void MyTestCleanup()

• //{

• //}

• //

• #endregion

• /// <summary>

• ///Тест для Main

• ///</summary>

• [TestMethod()]

• [DeploymentItem("ConsoleApplication1.exe")]

• public void MainTest()

• {

• string[] args = null; // TODO: инициализация подходящего значения

• Program_Accessor.Main(args);

• Assert.Inconclusive("Невозможно проверить метод, не возвращающий значение.");

• }

• /// <summary>

• ///Тест для CalculateTotalPrice

• ///</summary>

• [TestMethod()]

• [DeploymentItem("ConsoleApplication1.exe")]

• public void CalculateTotalPriceTest()

• {

• double uPrice = 5.99F; // TODO: инициализация подходящего значения

• int Qty = 12; // TODO: инициализация подходящего значения

• double expected = 80.5056F; // TODO: инициализация подходящего значения

• double actual;

• actual = Program_Accessor.CalculateTotalPrice(uPrice, Qty);

• Assert.AreEqual(expected, actual,.001);

• // Assert.Inconclusive("Проверьте правильность этого метода теста.");

• }

• }

• }



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: