АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. II этап: запуск программы PowerPoint и выбор режима отображения.
  2. V. Статья-компиляция. Отпечатки пальцев.
  3. Електронні таблиці. Табличний процесор, запуск, відкриття й збереження документа. Копіювання, переміщення й видалення даних, форматування даних.
  4. Запуск MathCAD
  5. Запуск Simulink та послідовність створення нової моделі
  6. Запуск SolidWorks 2000
  7. Запуск задачи на решение
  8. Запуск и опробование двигателей
  9. Запуск и работа с программой
  10. Запуск интерпретатора Пролога
  11. Запуск ОС Windows.
  12. Запуск программ с помощью пакета NС

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>, которая позволяет это сделать в зависимости от платформы.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)