desenvolvimento utilizando tdd filedesenvolvimento utilizando tdd objetivo demonstrar o...

7

Click here to load reader

Upload: lamkhue

Post on 25-Sep-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento utilizando TDD fileDesenvolvimento utilizando TDD Objetivo Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres em “camel case” em

Desenvolvimento utilizando TDD

Objetivo

Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres

em “camel case” em uma lista de strings com as palavras usando o TDD (Test Driven

Development).

Resumo

No desenvolvimento foram criados dois métodos, um método principal e um método

auxiliar, sempre utilizando o TDD. O método converte uma string, palavras e frases, e faz

a validação impedindo a utilização de strings vazias. Não foi necessário a refatoração do

código em algumas sessões.

Desenvolvimento

• SESSÃO 1

Nessa sessão foi criado o teste, o método principal e o código que converte uma palavra simples. Pela simplicidade do código não foi preciso refatorar.

1.1 TESTE ADICIONADO

@Testpublic void testConverterNomeSimples() {

List<String> lista = new ArrayList<String>();lista.add("nome");

assertEquals(lista,ConverteCamelCase.converterCamelCase("Nome"));}

1.2 CÓDIGO ANTES DO TESTE

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original){

return null;}

}

1.3 CÓDIGO DEPOIS DO TESTE

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original){

Page 2: Desenvolvimento utilizando TDD fileDesenvolvimento utilizando TDD Objetivo Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres em “camel case” em

List<String> lista = new ArrayList<String>();

lista.add(original).toLowerCase());

return lista;}}

1.4 REFATORAÇÃO

Código não foi alterado.

• SESSÃO 2

Nessa sessão foi criado o teste e o código para a conversão de mais de uma palavra.

2.1 TESTE ADICIONADO

@Testpublic void testNomeComposto() {

List<String> lista = new ArrayList<String>();lista.add("nome");lista.add("composto");assertEquals(lista,

ConverteCamelCase.converterCamelCase("NomeComposto"));}

2.2 CÓDIGO ANTES DO TESTE

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original) {List<String> lista = new ArrayList<String>();

if (!original.isEmpty() && original.matches("\\w*")){lista.add(original).toLowerCase());

}else{System.out.println("Palavra inválida");}

return lista;}

}

2.2 CÓDIGO DEPOIS DO TESTE

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original) {List<String> lista = new ArrayList<String>();StringBuilder sb = new StringBuilder(original);int x = 0;String[] palavras;String nova;char[] c = original.toCharArray();

for (int x = 0; x < original.length(); x++){

Page 3: Desenvolvimento utilizando TDD fileDesenvolvimento utilizando TDD Objetivo Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres em “camel case” em

if (Character.isUpperCase(c[x]) && x != 0){sb.insert(x + count, ";");x++;

}}nova = sb.toString();palavras = nova.split(";");for (int i=0; i < palavras.length; i++){

lista.add(palavras[i]).toLowerCase();}System.out.println(lista);return lista;

}}

2.3 REFATORAÇÃO

Foi mudado o nome de algumas variáveis e excluída uma saída de texto.

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original) {List<String> lista = new ArrayList<String>();StringBuilder sb = new StringBuilder(original);int count = 0;String[] palavras;String novaPalavra;char[] c = original.toCharArray();

for (int x = 0; x < original.length(); x++){if (Character.isUpperCase(c[x]) && x != 0){

sb.insert(x + count, ";");count++;

}}nova = sb.toString();palavras = nova.split(";");for (int i=0; i < palavras.length; i++){lista.add(palavras[i]).toLowerCase();}

return lista;}

}

• SESSÃO 3

Nessa sessão foi criado o teste e o método auxiliar.

3.1 TESTE ADICIONADO

@Testpublic void testSepararPalavras(){

String[] palavras = {"Nomes","Separados"};assertArrayEquals(palavras, ConverteCamelCase.separarPalavras("NomesSeparados"));

}

3.2 CÓDIGO ANTES DO TESTE

Page 4: Desenvolvimento utilizando TDD fileDesenvolvimento utilizando TDD Objetivo Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres em “camel case” em

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original) {List<String> lista = new ArrayList<String>();StringBuilder sb = new StringBuilder(original);int count = 0;String[] palavras;String nova;

char[] c = original.toCharArray();

for (int x = 0; x < original.length(); x++){if (Character.isUpperCase(c[x]) && x != 0){

sb.insert(x + count, ";");count++;

}}nova = sb.toString();palavras = nova.split(";");for (int i=0; i < palavras.length; i++){

lista.add(palavras[i]).toLowerCase();}

return lista;}

}

3.3 CÓDIGO DEPOIS DO TESTE

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original) {List<String> lista = new ArrayList<String>();String[] palavras;

palavras = separarPalavras(original);for (int i=0; i < palavras.length; i++){

lista.add(palavras[i].toLowerCase());}

return lista;}

public static String[] separarPalavras(String original){char[] c = original.toCharArray();int count = 0;StringBuilder sb = new StringBuilder(original);

for (int x = 0; x < original.length(); x++){if (Character.isUpperCase(c[x]) && x != 0){

sb.insert(x + count, ";");count++;

}}System.out.println(sb);

return sb.toString().split(";");

}}

Page 5: Desenvolvimento utilizando TDD fileDesenvolvimento utilizando TDD Objetivo Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres em “camel case” em

3.4 REFATORAÇÃO

Não houve alteração no código.

• SESSÃO 4

Nessa sessão foi criado o teste e o código que valida a entrada vazia.

4.1 TESTE ADICIONADO

@Testpublic void testValidacaoStringVazia(){

List<String> lista = new ArrayList<String>();lista.add("Palavra Inválida");assertEquals(lista, ConverteCamelCase.converterCamelCase("1nome"));

}

4.2 CÓDIGO ANTES DO TESTE

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original) {List<String> lista = new ArrayList<String>();String[] palavras;palavras = separarPalavras(original);

for (int i=0; i < palavras.length; i++){lista.add(palavras[i].toLowerCase());

}return lista;}

public static String[] separarPalavras(String original){char[] c = original.toCharArray();int count = 0;StringBuilder sb = new StringBuilder(original);

for (int x = 0; x < original.length(); x++){if (Character.isUpperCase(c[x]) && x != 0){

sb.insert(x + count, ";");count++;

}}

return sb.toString().split(";");

}

4.3 CÓDIGO DEPOIS DO TESTE

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original){

List<String> lista = new ArrayList<String>();String[] palavras;

Page 6: Desenvolvimento utilizando TDD fileDesenvolvimento utilizando TDD Objetivo Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres em “camel case” em

if (!original.isEmpty() && original.matches("\\w*")){palavras = separarPalavras(original);for (int i=0; i < palavras.length; i++){

lista.add(palavras[i].toLowerCase());}

}else{System.out.println("Palavra inválida");}

return lista;}

public static String[] separarPalavras(String original){char[] c = original.toCharArray();int count = 0;StringBuilder sb = new StringBuilder(original);

for (int x = 0; x < original.length(); x++){if (Character.isUpperCase(c[x]) && x != 0){

sb.insert(x + count, ";");count++;

}}return sb.toString().split(";");}

}

4.4 REFATORAÇÃO

Não houve alteração no código.

5 CÓDIGO FINAL

public class ConverteCamelCase {

public static List<String> converterCamelCase(String original){

List<String> lista = new ArrayList<String>();String[] palavras;

if (!original.isEmpty() && original.matches("\\w*")){palavras = separarPalavras(original);for (int i=0; i < palavras.length; i++){

lista.add(palavras[i].toLowerCase());}

}else{System.out.println("Palavra inválida");}

return lista;}

public static String[] separarPalavras(String original){char[] c = original.toCharArray();int count = 0;StringBuilder sb = new StringBuilder(original);

Page 7: Desenvolvimento utilizando TDD fileDesenvolvimento utilizando TDD Objetivo Demonstrar o desenvolvimento de um método que transforma uma cadeia de caracteres em “camel case” em

for (int x = 0; x < original.length(); x++){if (Character.isUpperCase(c[x]) && x != 0){

sb.insert(x + count, ";");count++;

}}return sb.toString().split(";");}

}