Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Компиляция и запуск




1. ЗагрузитьJUnitссервераwww.junit.org

2. Распаковать загруженный архив

3. Добавить в переменную окружения CLASSPATHCLASSPATH=%CLASSPATH%;%JUNIT_HOME%\junit.jar

4. Для консольного режима запуск выполнить:
java junit.textui.TestRunner junit.samples.AllTests

Пусть класс ChangedName манипулирует именами файлов и генерирует имя файла с определенным расширением на основании заданного имени. Тестируемый класс будет содержать метод String rename(String ext), где параметр ext – новое расширение файла. Также класс будет иметь конструктор, принимающий имя изменяемого файла.

/*пример # 3: генерация имени файла с заданным расширением:

ChangedName.java */

package app6;

public class ChangedName {

private String name;

// реализация

public ChangedName(String name){

this. name = name;

}

public String rename(String ext) {

String old = name;

int dot_pos = old.indexOf('.');

if (dot_pos > 0)

old = old.substring(0, dot_pos);

return old + "." + ext;

}

}

Далее создан тест для метода rename() с учетом того, что он должен задавать имени файла новое расширение.

/*пример # 4: тестирование метода rename() класса ChangedName:

ChangedNameTest.java */

package app6;

public class ChangedNameTest extends TestCase {

// метод-тестировщик должен называться testИмя, где Имя – это имя тестируемого метода

public void testRename() {

ChangedName changed = new ChangedName("report");

/*метод проверяет, равны ли ожидаемая и полученная строки, и если результатом будет false, то тест завершит работу приложения*/

assertEquals("report.txt", changed.rename("txt "));

}

}

/* пример # 5: класс, который проверяет, является ли одно число делителем другого: Devisor.java*/

package app6;

public class Devisor {

public boolean isDevisor(int num1,int num2){

if ((num2!=0)&&(num1%num2==0)) return true; //1

// if(num1%num2==0) return true; // 2

else return false;

}

}

Ниже реализован тест, который проверят корректность работы метода
isDevisor().

/* пример # 6: тестирование метода isDevisor() класса Devisor:

DevisorTest.java*/

package app6;

import junit.framework.TestCase;

 

public class DevisorTest extends TestCase {

public void testIsDevisor() {

Devisor obj = new Devisor();

boolean result1 = obj.IsDevisor(2,1);

boolean result2 = obj.IsDevisor(1,0);

assertEquals(true, result1 ); // test1

/*test1 проверяет, действительно ли результат работы метода для чисел 2 и 1 равен true. Если это верно, то выполнится следующий тест, если нет, то приложение завершит работу, а тестировщик сообщит об ошибке.*/

assertEquals(false, result2); // test2

}

}

В данном случае программа верна. Если же закомментировать строку 1
и убрать комментарий со строки 2 в классе Devisor, то test1 выполнится
корректно, а test2 завершит работу приложения и выдаст сообщение об оши-
бке из-за генерации при работе метода необработанного исключения ArithmeticException.

/*пример # 7: класс позволяет считывать информацию из заданного файла
и преобразовывать её в строку: ReadFile.java*/

package app6;

import java.io.FileReader;

import java.io.IOException;

 

public class ReadFile {

public String fileIntoString(String st) {

String str = "";

try {

FileReader stream = new FileReader(st);

int s;

while ((s = stream.read())!= -1) {

str = str + s;

}

System.out.println(str);

stream.close();

} catch (IOException e) {

System.err.println(e);

}

return str;

}

}

Тест, проверяющий корректную работу этого класса:

/* пример # 8: тестирование класса ReadFile: ReadFileTest.java*/

package app609;

import junit.framework.TestCase;

 

public class ReadFileTest extends TestCase {

public void testFileIntoString() {

ReadFile obj = new ReadFile();

String st =

obj.fileIntoString("D:\\temp\\test.txt");

assertFalse("".equals(st));

/*если файл не существует или не пуст, то программа завершит работу с сообщением об ошибке*/

}

}

В простом пользовательском классе StringConCat реализован метод
concat(String s1, String s2), который объединяет две строки.

/*пример # 9: тестируемый класс: StringConCat.java*/

package app609;

public class StringConCat {

// реализация

 

public String concat(String st1, String st2) {

String str = st1 + st2;

return str;

}

}

Тест, проверяющий корректность работы этого метода:

/* пример # 10: тестирование метода concat() класса StringConCat:

StringConCatTest.java*/

package app6;

import junit.framework.TestCase;

 

public class StringConCatTest extends TestCase {

public void testConcat(){

StringConCat obj = new StringConCat();

String st = obj.concat("Java", "2");

assertEquals("Java2", st);

}

}

Последняя версия JUnit полностью основана на аннотациях и в явном виде не использует тип TestCase.

 
Приложение 8

Apache Ant

Apache Ant – это основанный на Java набор инструментов для сборки приложений.

Ant – теговый язык. Он обрабатывает XML-файлы, организованные особым образом. Каждый тег по сути является Java-классом, и есть возможность создавать свои теги или расширять возможности уже имеющихся.

Ant– многоплатформенный, основанный на использовании командной строки продукт, следовательно, возможна интеграция с другими операционными системами.

Вместо того чтобы наследовать функции командной строки, Ant основан на Java-классах. Конфигурационный файл устроен в виде XML, из которого можно вызвать разветвлённую систему целей, состоящую из множества мелких задач. Каждая задача является объектом, который наследует соответствующий интерфейс класса Task. Всё это даёт возможность переносить программу с платформы на платформу. И если действительно необходимо вызвать какой-либо процесс
у Ant есть задача <exec>, которая позволяет это сделать в зависимости от платформы.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных