Guia de Padrões de Projeto e Testes de Software
Classificado em Computação
Escrito em em
português com um tamanho de 2,24 KB
Implementação do Padrão Singleton
public class RegistrySingleton {
private static RegistrySingleton object = null;
public Dictionary<string, string> ipList = new Dictionary<string, string>();
private RegistrySingleton() { }
public void setIP(string machine, string IP) {
instance().ipList.Add(IP, machine);
}
public static RegistrySingleton instance() {
if (object == null) {
object = new RegistrySingleton();
}
return object;
}
}Estrutura de Página Web (Composite Pattern)
h = new Composite("HTML");
b = new Composite("Body");
d = new Composite("Div");
l = new Leaf();
l.texto = "Olá";
l.descrição = "Bom Dia";
d.IdElement(l);
b.IdElement(d);
h.IdElement(b);
h.doThis();Testes de Condição e Loops
for (int i=0; i < records.length; i++)
- Solução Válida:
records.length > 0(executa prints) ourecords.length == 0(não faz nada). - Solução Inválida:
records == null(gera exceção).
Cobertura de Decisões Múltiplas
Exemplo: if(++a > 5 && ++a > 6) a++;
Para cobrir as decisões, é necessário testar para verdadeiro (V) e falso (F):
- a ≥ 5: Condição V, V; Decisão V.
- a ≤ 4: Condição F, F; Decisão F.
Nota: As condições V-F e F-V não são atingíveis.
Análise de Condições Lógicas
while(a!=1 || b!=1 || c!=1)
- Solução Válida: a=1, b=1, c=3 (Condição F, F, V; Decisão V).
- Solução Inválida: a=1, b=1, c=1 (Condição F, F, F; Decisão F).
Validação de Objetos JSON
{“idade” : 20};
Verificação de integridade:
if(obj && typeof obj.idade === "number" && obj.idade >= 0) { }- Solução Válida:
{"idade" : 30} - Solução Inválida:
{"idade" : {}}ou{}