Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

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






Часть 2. Самостоятельно разработайте спецификацию метода, реализуйте






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

Введение в тестирование и отладку кода

Цели работы: Реализовать простой класс.

Задание 1

Вариант 3

Часть 1. Написать тесты к методу, а затем реализовать сам метод по

Заданной спецификации.

Реализуйте и протестируйте метод int indexOfDifference(String str1, String str2) ко-

торый сравнивает две строки и возвращает индекс той позиции, в которой они разли-

чаются. Например, indexOfDifference(”i am a machine”, ”i am a robot”) должно вер-

нуть 7.

StringUtils.indexOfDifference(null, null) = NullPointerException

StringUtils.indexOfDifference(””, ””) = -1

StringUtils.indexOfDifference(””, ”abc”) = 0

StringUtils.indexOfDifference(”abc”, ””) = 0

StringUtils.indexOfDifference(”abc”, ”abc”) = -1

StringUtils.indexOfDifference(”ab”, ”abxyz”) = 2

StringUtils.indexOfDifference(”abcde”, ”abxyz”) = 2

StringUtils.indexOfDifference(”abcde”, ”xyz”) = 0

Часть 2. Самостоятельно разработайте спецификацию метода, реализуйте

её в тестах, а затем реализуйте сам метод.

Напишите метод String difference(String str1, String str2) сравнивающий две стро-

ки и возвращающий разницу между ними. Другими словами, метод должен остаток

от строки, где они различаются.

Class Lab6_ssp:

package Lab6_ssp;

 

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

 

/**

* Created by piratXus on 12.10.2016.

*/

public class Lab6_ssp {

 

private int getIndex(Iterator<? > iter1, Iterator<? > iter2, int index, int count) {

while (iter2.hasNext()) {

if (iter1.hasNext() == false) {

index = count;

break;

}

if (iter1.next()! = iter2.next()) {

index = count;

break;

} else index = -1;

count++;

}

return index;

}

 

public int indexOfDifference(String str1, String str2) throws Exception {

int index = 0;

try {

if(str1.equals(" ") & & str2.equals(" ")){

return -1;

}

char[] char1 = str1.toCharArray();

char[] char2 = str2.toCharArray();

List< Character> str1List = new ArrayList< Character> ();

List< Character> str2List = new ArrayList< Character> ();

 

for (char ch: char1) {

str1List.add(ch);

}

for (char ch: char2) {

str2List.add(ch);

}

Iterator< Character> iter1 = str1List.iterator();

Iterator< Character> iter2 = str2List.iterator();

if (char1.length == char2.length & & char2.length == 0) {

int count=0;

index = getIndex(iter1, iter2, index, count);

} else if (char1.length > char2.length) {

int count = 0;

index = getIndex(iter1, iter2, index, count);

} else if (char2.length > char1.length) {

int count = 0;

index = getIndex(iter1, iter2, index, count);

} else if (char2.length == char1.length) {

int count = 0;

index = getIndex(iter1, iter2, index, count);

}

return index;

} catch (NullPointerException e) {

return 404;

}

}

 

public String difference(String str1, String str2)throws Exception{

String outputString=" ";

try{

char[] char1 = str1.toCharArray();

char[] char2 = str2.toCharArray();

int inedxDif=indexOfDifference(str1, str2);

if(inedxDif==-1){

outputString=str1;

}else{

for(int i=0; i< inedxDif; i++){

outputString+=char1[i];

}

}

return outputString;

}catch (NullPointerException e){

return e.getMessage();

}

}

}

 

Class JunitTestSum:

package Lab6_ssp;

 

import org.junit.Test;

 

import static junit.framework.Assert.assertEquals;

 

/**

* Created by piratXus on 12.10.2016.

*/

 

public class JunitTestSum {

@Test

public void testAccum() throws Exception{

Sum sum=new Sum();

int i = sum.accum(1, 2, 3, 4, 5);

int test2 = sum.accum(2, 2);

int test3 = sum.accum(999999999, 999999999);

 

assertEquals(15, i);

assertEquals(4, test2);

}

 

@Test

public void testIndexOfDifference() throws Exception{

Lab6_ssp lab6_ssp=new Lab6_ssp();

assertEquals(" NullPointerException", 404, lab6_ssp.indexOfDifference(null, null));

assertEquals(-1, lab6_ssp.indexOfDifference(" ", " "));

assertEquals(0, lab6_ssp.indexOfDifference(" ", " abc"));

assertEquals(0, lab6_ssp.indexOfDifference(" abc", " "));

assertEquals(-1, lab6_ssp.indexOfDifference(" abc", " abc"));

assertEquals(2, lab6_ssp.indexOfDifference(" ab", " abxyz"));

assertEquals(2, lab6_ssp.indexOfDifference(" abcd", " abxy"));

assertEquals(0, lab6_ssp.indexOfDifference(" adcde", " xyz"));

 

System.out.println(" Test index of difference successful");

}

 

@Test

public void testDifference() throws Exception{

Lab6_ssp lab6_ssp=new Lab6_ssp();

assertEquals(null, lab6_ssp.difference(null, null));

assertEquals(" ", lab6_ssp.difference(" ", " "));

assertEquals(" ", lab6_ssp.difference(" ", " abc"));

assertEquals(" ", lab6_ssp.difference(" abc", " "));

assertEquals(" abc", lab6_ssp.difference(" abc", " abc"));

assertEquals(" ab", lab6_ssp.difference(" ab", " abxyz"));

assertEquals(" ab", lab6_ssp.difference(" abcd", " abxy"));

assertEquals(" ", lab6_ssp.difference(" adcde", " xyz"));

System.out.println(" Test difference successful");

}

 

}

 

Main Class:

JunitTestSum junitTestSum=new JunitTestSum();

junitTestSum.testIndexOfDifference();

junitTestSum.testDifference();

 

Output:


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.014 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал