Como fazer testes unitários em Models no CakePHP

Olá! Dando continuidade ao post anterior Introdução a testes unitários no CakePHP e SimpleTest, este post tenta explicar como testar models.

A camada de modelo (model) geralmente é conhecida pela sua capacidade de abstrair as fontes dos dados, tornando o sistema independente de banco de dados, isto é, independente se é utilizado MySQL, Postgres ou até mesmo arquivos CSV ou XML.

Pelo fato desta camada ser responsável pela manutenção dos dados do sistema, é de extrema importância testá-la. Os testes unitários devem garantir que esta esteja funcionando de acordo, para evitar incosistências.

Vamos criar os testes unitários desde o início, desde a criação das tabelas do banco de dados, passando pelos testes e a criação do model em si.


Leia o resto do post »

Introdução a testes unitários com CakePHP e SimpleTest

Há tempos eu venho lendo sobre XP (eXtreme Programming), Scrum e Feature Driven Development (FDD). São metodologias ágeis de desenvolvimento de software. O engraçado é que praticamente, ao meu ver, fazem a mesma coisa, porém de forma diferente. E todas elas frizam a importância dos testes unitários e, mais especificadamente, testes unitários antes do desenvolvimento, o chamado TDD (Test Driven Development). Como nunca havia trabalhado desta forma, ainda não tinha uma opinião sobre isso. Apenas comentários e depoimentos de que usa. Somado a isso, veio aquele senso de desafio, de inovação e curiosidade.

Faz alguns meses, e decidimos, eu e o Emanuel Zabka, implantar o TDD no desenvolvimento na empresa em que trabalhamos. Academicamente é falado muito em refactoring e mudanças de requisitos, mas na prática, eu nunca havia notado a quantidade de modificações que um mesmo código/classe/arquivo é modificado num curto período de tempo e a longo prazo.

Os testes me ajudaram a enxergar, não só as dependências do sistema, como também, acoplamentos desnecessários; a qualidade dos códigos; do design do projeto; e, consequentemente, diminuiu muito os bugs mais corriqueiros, como validação de campos. Mesmo tendo várias coisas boas, há coisas ruins, como aumento do tempo de desenvolvimento – o que, apesar de nunca ter medido, diminui o retrabalho e tempo utilizado no futuro em correções de bugs -, aumento da complexidade da arquitetura – a fim de manter uma maior coesão com baixo acoplamento, entre outros menos relevantes.

Leia o resto do post »

Acessando a freenode.org por SSL no Irssi

Bom, recentemente a FreeNode.org adicionou suporte a conexões SSL. Não que eu faça questão, porém meu irssi perdia a conexão com o server. Fui para o google e decidi postar a dica de como resolvi o problema e habilitei a conexão SSL.


Leia o resto do post »

Como consultar a documentação do PHP direto do Vim

Olá! Descobri recentemente que é possível baixar a documentação do PHP no formato do man do UNIX. Isso é muito bom, já que assim, podemos consultar funções com parâmetros, variáveis e exemplos. Melhor, podemos fazer isso direto do Vim.

Eu já tinha lido sobre uma opção do Vim chamada keywordprg, mas nunca havia encontrado uma serventia. Quando eu li no blog do bjori, realmente me veio à mente como eu poderia utilizá-la.


Leia o resto do post »

Lookahead, Lookbehind e Condicionais em Expressões Regulares

Depois de muito tempo sem postar, me lembrei de algo bem interessante! Vocês podem mandar mensagens na página de contato dando sugestões de temas sobre Vim, Expressões regulares ou outra coisa que vocês gostariam de ver no blog ;p.

Expressões Regulares

Expressão regular é uma ferramenta muito forte para o tratamento de texto. É muito utilizado para substituições ou para verificar integridade dos dados, pois, através da expressão regular, vulga regex ou re, pode-se casar padrões de texto. Por exemplo:

/^[a-zA-Z0-9]+$/
Para somente caracteres alfanuméricos.
 
/^(\d{3}\.){2}\d{3}-\d{2}$/
Validando formato de CPF.

Esse tipo de regex é simples, valida praticamente só os caracteres que compõe uma dada string. Porém, as Perl Compatible Regular Expressions (Expressões Regulares Compatíveis com Perl), também conhecidas como pcre, permitem muito mais, inclusive utilizar condicionados (if’s), porém isso é para outro post! O que vamos falar agora é de Lookahead e Lookbehind.


Leia o resto do post »

50 Cheat Sheets e Quick Refs para salvar sua pele

Estou disponibilizando algumas Cheat Sheets que estavam nos meus favoritos. Sempre são úteis em algum momento!!! Espero que aproveitem pelo menos 1 delas!

Controle de Versão

Frameworks

Programação

Web Design

Bancos de Dados

Ferramentas

Alguma que eu tenha esquecido? Posta ae nos comentários!

Galeria de fotos com efeitos somente com CSS3

Eu estava navegando pelo meus feeds e vi no Ajaxian um post falando sobre uma galeria de fotos somente utilizando css3. Nada de jQuery, mootools, enfim, javascript. Somente CSS3.

Veja a Galeria Demo E o arquivo css comentado.

Ai me lembrei do vídeo Hitler falando sobre o Internet Explorer 6:

Como indagou o filme, será que um dia poderemos utilizar todo o potencial do CSS3?

Solucionando problema com mmkeys.so no exaile do archlinux

As hotkeys, ou teclas de atalho, sempre são úteis para quando você está escutando uma música e alguém lhe pergunta algo, ou precisa ir no banheiro ou precisa passar a música porque a atual é ruim. O exaile sempre foi meu player preferido. Simpatizo muito com ele. Para as teclas de atalho sempre utilizei o plugin Xkeys.

Depois de atualizado o pacote exaile do ArchLinux, o plugin XKeys parou de funcionar e não aceitava mais minhas teclas de atalho do teclado para manipular áudio, como forward, backward, stop, play, etc.

Esse problema era antigo, ele acusava que era necessário a lib mmkeys.so e que não estava presente. Nunca tinha tempo pra verificar o problema, até que eu decidi ir atrás.


Leia o resto do post »

Tchelinux 2009 – Porto Alegre

Para quem é do Sul, estarei em Porto Alegre no dia 14/11/2009 ministrando duas palestras no evento Tchelinux. A programação tem mais de 60 palestras sobre diversos temas e a entrada é apenas 2kg de alimentos não perecíveis. Aqueles que participarem recebem um atestado de 10h para usar como atividade complementar.

Para mais informações http://www.tchelinux.org/2009. As palestras serão:

VIM-de a mim, produtividade

Uma palestra que mostra maneiras para um edição de texto efetiva e rápida usando o vim.

jQuery – Introdução

Apresenta o porquê do jQuery ser um excelente framework para desenvolvimento rápido com javascript.

Se alguém tiver assistido a alguma palestra, favor dar um feedback!!!

Buscas eficientes no Vim com vimgrep

A busca efetiva pode ajudar muito, caso bem usada, tanto no ganho de tempo como na efeciência de substituições ou refactories. Seguem alguns outros exemplos de finalidades para a busca utilizando o Vim:

Além da conhecida / (barra) para buscar, existe o :vimgrep. É dele que quero falar.


Leia o resto do post »