Главная » C# » Тестирование операции простого сложения для программы Калькулятор в Visual C# (Sharp)

0

Для верификации правильности сложения  чисел  1  и  2  добавьте  выделенный  жиым шрифтом код  в  исходный  код тестового  консольного  приложения,  как  показо в  следующем  фрагменте  кода:

namespace TestCalculator { class Program {

public static void TestSiiqpleAddition() {

int total = Calculator.Operations.Add(1, 2); if (total !=3 ) {

Console.WriteLine("Oops 1 and 2 does not equal 3");

}

}

static void Main(string[] args){

TestSiiqpleAddition();

}

}

}

Протестируйте  выполнение  операции   сложения,  запустив  консольное  приложение на исполнение нажатием комбинации  клавиш  <Ctrl>+<F5>.  При  исполнении  тестое консольное приложение вызывает тестовый метод TestsimpleAddition (), корый  вызывает  и  верифицирует  функциональность  библиотеки  класса  Calculator.

ПРИМЕЧАНИЕ

Вспомните, что исполнение проекта начинается в методе Main () . Поэтому, чтобы приложение делало что-нибудь, необходимо добавить соответствующий код в  метод Main().

Чтобы проверить вариант неуспешного тестирования, измените метод Add(), как показано жирным  шрифтом  в  следующем  фрагменте  кода:

public static int Add(int number1, int number2)

{

return number1 * number2;

}

Тестовая  программа  теперь  должна  вывести  сообщение  о  неуспешном  исполнении метода.

До сих пор  в этой  главе мы  имели дело со следующими тремя фрагментами  кода:

•   сегмент  кода,  реализующий  метод  Add(),  является  компонентом,   исполняющим операцию   вычисления;

•   код  вызывающего  компонента,  который  может  быть либо  приложением  Windows, либо  консольным  приложением,  считается  промышленным  кодом;

3 Зак. 555

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

Эти три фрагмента кода демонстрируют полный цикл разработки.

Проверка операции сложения двух очень больших чисел

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

Исходный код для такого теста показан на рис. 2.11. Добавьте его к исходному ку в файле Program.cs проекта TestCalculator.

Рис. 2.11. Проверка операции сложения двух очень больших чисел

За исключением самих чисел, тест для операции сложения двух больших чисел практически такой же, как и тест для проверки операции сложения двух простых чисел. Также несколько по-иному обрабатывается сообщение об ошибке — здесь оно составляется, конкатенируя строку с целым числом с другой строкой. С# автатически преобразует целое число в строку.

Часто при написании тестов единственная существенная разница состоит в самих данных, а не в результате операций над ними. Как вы думаете, операции сложения двух очень больших чисел (например, 2 млрд и 2 млрд) и двух простых чисел (нример, 2 и 2) чем-либо отличаются друг от друга? Для людей — нет, т. к. для нас основная разница между числами 2 млрд и 2 состоит в куче нулей; результат будет или 4 млрд или просто 4, что кажется очень тривиальным. Но для  компьютеров, как мы позже увидим, 4 млрд значительно отличается от 4.

Прежде чем исполнять тест, его вызов необходимо добавить в код метода Main (), как показано жирным шрифтом в следующем фрагменте кода:

static void Main(string[] args)

{

Tes tS impleAddi t ion();

TestReallyBigNumbers();

}

Результат исполнение теста теперь будет следующим1:

Error found (-294967296) should have been (4869586958695)

Программа сообщает нам, что при сложении произошла ошибка, и что результатом сложения 2 млрд. с 2 млрд. является значение -29 4 967 296, что не имеет никакого смысла. Что здесь происходит? Проблема здесь заключается в типе данных (int) , которым был объявлен метод Add ().

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии