|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Компиляция и запуск1. ЗагрузитьJUnitссервераwww.junit.org 2. Распаковать загруженный архив 3. Добавить в переменную окружения CLASSPATHCLASSPATH=%CLASSPATH%;%JUNIT_HOME%\junit.jar 4. Для консольного режима запуск выполнить: Пусть класс 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; } } Ниже реализован тест, который проверят корректность работы метода /* пример # 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 /*пример # 7: класс позволяет считывать информацию из заданного файла 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 реализован метод /*пример # 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. Apache Ant Apache Ant – это основанный на Java набор инструментов для сборки приложений. Ant – теговый язык. Он обрабатывает XML-файлы, организованные особым образом. Каждый тег по сути является Java-классом, и есть возможность создавать свои теги или расширять возможности уже имеющихся. Ant– многоплатформенный, основанный на использовании командной строки продукт, следовательно, возможна интеграция с другими операционными системами. Вместо того чтобы наследовать функции командной строки, Ant основан на Java-классах. Конфигурационный файл устроен в виде XML, из которого можно вызвать разветвлённую систему целей, состоящую из множества мелких задач. Каждая задача является объектом, который наследует соответствующий интерфейс класса Task. Всё это даёт возможность переносить программу с платформы на платформу. И если действительно необходимо вызвать какой-либо процесс Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |