Студопедия

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

КАТЕГОРИИ:

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






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






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

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

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

Задание 1

Вариант 3

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

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

Реализуйте и протестируйте метод intindexOfDifference(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-2022 год. (0.03 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал