logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Jun 30

Windows Phone SDK 7.1 Beta 2 disponível para download

Escrito por Kelps Sousa em .NET, 1, 2.0, 4, 6, app, AR, Beta, blog, C#, Desenvolvedor, desenvolvedores, Desenvolvimento, development, Download, email, err, Excel, Ferramenta, for, Google, html, if, int, map, mg, Microsoft, News, O, on, Ria’s Geral, S+S, SDK, Tema, tool, Ved, web, window, windows @ 06 30th, 2011 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Se você está interessado no desenvolvimento para Windows Phone 7, ficará feliz em saber que está disponível para download o beta2 das ferramentas de desenvolvimento para Windows Phone 7.1 (mango).

Uma das coisas que mudou foi que agora o download se chama Windows Phone SDK, não mais Windows Phone Development Tools.

Para instalar esta versão é necessário primeiro remover a versão beta anterior.

Em conjunto com essa nova versão, a Microsoft também anunciou que TODOS os desenvolvedores cadastrados no AppHub receberão um convite por email para participar do beta do Windows Phone 7.1 no Connect. Em outras palavras, isso significa que todos os desenvolvedores cadastrados poderão atualizar os seus telefones com uma versão beta do sistema operacional que será lançado no segundo semestre. Essa é uma excelente notícia para quem já está desenvolvendo aplicações utilizando as ferramentas beta que foram lançadas pouco mais de 1 mês atrás.

Você já tem um Windows Phone? Vai instalar este beta nele? Eu vou Winking smile



Jun 30

Red5; LiveStreamer & LiveGuardian

Escrito por Mário Santos em Action Script & MXML, Air, audio, Desktop, flash, Flex, Java, portfolio, Red5, Ria’s Geral, Vídeo @ 06 30th, 2011 | via http://msdevstudio.com/blog | 1 comentário
Mário Santos
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá a todos!

Estou de volta ? ativa, depois de alguns tempos longe do blog, volto com mais algumas novidades em breve, principalment sobre as minhas novass investidas no Java e no ColdFusion 9 que estou agora a conhecer, mas que já me está a surpreender positivamente em muitos pontos, mas negativamente em outros… mas deixo isso para outro artigo.

Venho aqui falar de 2 projetos que fiz ja a algmas semanas, trata-se de 2 sistemas parecidos, mas com diferentes funcionalidades. De seus nomes LiveStreamer & LiveGuardian.

Vou falar-vos um pouco deles e mais ? frente talvez coloque alguns screenshots e um video de seu funcionamento. Ambos partilham algumas características como serem distribuidos no desktop usando adobe AIR, precisarem ambos de um servidor Red5 disponível e ambos usarem captura de webcam.

O LiveStreamer foi uma variação do projeto LiveGuardian (veja em baixo) que consiste num simples sistema de captura de webcam & audio e envio para um servidor Red5 online. A principal caracteristica dele é que no caso de falha de internet ele não deixa de funcionar, simplesmente interrompe o stream, e fica a aguardar que a ligação ? internet volte para iniciar novamente o stream.

O sistema pode também iniciar junto com o sistema operativo (windows) e de imediato iniciar o stream… caso seja configurado pode ainda fazer isto tudo em modo silencioso, ou seja, o utilizador nem dá conta que a aplicação está a correr. Util para quem não quer estar sempre a chatear-se com a minimização do mesmo.

O stream publico pode ser facilmente inserido em qualquer pagina, blog, aplicação web, desktop ou até mobile usando um player que suporte leitura de streams RTMP como no caso do JW player!

Podem desde já imaginar enumeras utilidades para este dispositivo, principalmente de colaboração, vigilancia ? distancia, captura de ecra (usando um driver “webcam” de captura), etc..

Este foi um projeto super interessante, não pelo motivo de usar também red5, mas pelo desafio que apresentava. A principal função deste software é fazer sessões de gravação de video e audio (se configurado) para o computador local. A instalação do Red5 é feita localmente tal (…)
Leia o resto de Red5; LiveStreamer & LiveGuardian (385 palavras)


© msdevweb for TSW – That Should Work Blog, 2011. | Permalink |No comment | Add to del.icio.us

Post tags: Air, audio, Desktop, Flash, Flex, recorder, stream, video



Jun 27

Princípios de Projeto OO

Escrito por Edgard Davidson em 1, 3.5, 4, 6, AR, BI, blog, C#, Curso, Design Patterns, IE, int, interface, O, on, Pessoal, POO, RIA, Ria’s Geral, S+S, Software, UI @ 06 27th, 2011 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Ol? Pessoal.

J? est?o dispon?veis no blog do curso de p?s gradua??o em Engenharia de Software Centrada em M?todos ?geis todos os post referente aos Princ?pios de Projeto OO.

SAP – Stablility and Abstract Principle – Princ?pio da Abstra??o e Estabilidade
CCP – Common Closure Principle
ADP – Acyclic Dependencies Principle – Princ?pio da Depend?ncia Ac?clica
REP – Reuse release equivalence principle – Princ?pio da Equival?ncia de Reuso/Vers?o
OCP – The Open Close Principle – Princ?pio aberto/fechado
SDP –Stable Dependencies Principles – Princ?pios das Depend?ncias Est?veis
CRP – The Common Reuse Principle – Princ?pio da Reutiliza??o Comum
LOD – Law Of Demeter – Lei de Demeter
DIP – The Dependency Inversion Principle – Princ?pio da Invesr?o da Depend?ncia
SRP – Single Responsability Principle – O Princ?pio da Responsabilidade ?nica
LSP – The Liskov Substitution Principle – Princ?pio da Substitui??o de Liskov
ISP – The Interface Segregation Principle – Princ?pio da Segrega??o de Interfaces

Boa leitura!

Jun 27

Adobe AIR Device profiles

Escrito por Leonardo França em 1, 2.0, 4, 6, Adobe, Adobe Air, Air, api, AR, BI, C#, class, classe, classes, Curso, Cursos, Desktop, html, if, image, int, mg, mobile, O, on, PHP, Ria’s Geral, S+S, tv, UI, uint @ 06 27th, 2011 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



No Adobe AIR, você pode configurar os perfis de dispositivos, que são um mecanismo para definir as classes que estarão disponivéis para o dispositivo onde seu aplicativo rodara definindo um conjunto de APIs e recursos, normalmente para uma classe particular de dispositivo. Os perfis disponíveis incluem:

  • desktop
  • extendedDesktop
  • mobileDevice
  • extendedMobileDevice
  • tv
  • extendedTV

Você pode obter mais detalhes sobre cada profile e sobre as classes suportadas no seguinte link:
http://help.adobe.com/en_US/air/build/WS144092a96ffef7cc16ddeea2126bb46b82f-8000.html

Jun 27

Metadata Tags customizadas com Code completion

Escrito por Willian Mano em 1, 2.0, 2009, 3d, 4, 6, Adobe, AR, Artigo, as3, BI, blog, C#, class, código, configuração, custom, Documentação, event, exemplo, flash, flash builder, Flex, Flex 3, Flex 4, fonte, for, Formação, framework, Frameworks, handle, html, int, Links, mg, O, on, Pessoal, Plugin, Projetos, pt, RIA, Ria’s Geral, S+S, SDK, string, Sun, Swiz Framework, tag, TAT, Twitter, UI, XML @ 06 27th, 2011 | via http://blog.willianmano.eti.br/ | Sem comentários
Willian Mano
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá pessoal, nesse breve artigo eu irei falar um pouco sobre as Metadata Tags.

[Importante]
A partir da versão 4.5 do flex as Metadatas customizadas não precisam ser declaradas para o compilador nos projetos Flex, o conhecido “-keep-as3-metadata”, quem trabalha com Frameworks de terceiros entende bastante isso.

Notei na nova versão do Swiz Framework que existe também uma complementação do código para metadatas personalizadas como “Inject e EventHandler”. Depois de vasculhar os fontes do Swiz Framework encontrei o arquivo metadata.xml que é o responsável pela declaração de todas essas metadatas.

Se você está criando uma biblioteca que possui suas próprias metadatas e deseja criar uma complementação do código, basta seguir os passos da documentação da própria Adobe, é bem simples.

Esse é um exemplo desse arquivo de configuração.



  
      
          
      
  

Você pode se basear pelo arquivo do próprio framework do flex. Fica na pasta: sdks4.5.0frameworksmetadata.xml

Espero que a informação tenha sido útil.

Abaixo seguem alguns links interessantes relacionados ao assunto.

  • About metadata tags
  • Metadatas Personalizadas (Flex 3 e Flex 4)
  • Code completion for custom metadata tags

Post to Twitter

Jun 24

(off) Quadrinho

Escrito por SamuelFacchinello em 1, 2.0, 3.5, 4, 6, AR, blog, Blogs, C#, Flex, Google, mg, O, on, Ria’s Geral @ 06 24th, 2011 | via http://desenvolvendoemflex.blogspot.com/ | Sem comentários
SamuelFacchinello
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Quadrinho para alegrar o fim de semana:

Jun 24

Mudanças a caminho

Escrito por Luiz Tarabal em Projetos, RIA, Ria’s Geral @ 06 24th, 2011 | via http://luiztarabal.com.br/ | Sem comentários
Luiz Tarabal
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá pessoal, amigos, parceiros e colaboradores deste blog.

Como já podemos notar o blog esta em ‘hibernação’ desde 2010, alguns motivos para isso é a falta de tempo para escrever novos artigos, pois no momento estou envolvido no lançamento de uma Start-Up no mercado de Web Hosting com um modelo de negocio diferente e por isso mais complexo inicialmente, além de outros trabalhos que venho realizado na área de pesquisa de novos produtos, testes e feedback.
Tudo isso tem me tomado bastante tempo, e como sabem prefiro eu mesmo escrever os artigos e descobertas ao invés de simplesmente copiar e colar aqui, além de tudo não estou muito contente com o atual mercado de RIAS, claro ele esta expandindo, mas vejo uma saída mais simplista em tecnologias nativas para o desenvolvimento web, utilizando HTML5, entre outros deste mesmo pacote, e tudo indica que o mercado segue este caminho.

Porém ainda continuo utilizando tecnologias da Adobe para desenvolvimento de software voltado para gestão interna, exemplo disso é o sistema criado para a Nex Site Web Hosting, que é um software ERP SaaS, desenvolvido tendo em vista cobrir as necessidades únicas deste mercado, ao invés de se utilizar soluções prontas e que não valorizariam em nada o projeto.
Este ERP concentra todas as atividades da empresa e foi desenvolvido utilizando Adobe Flash Builder 4 e acredito que o nicho da plataforma Flash/Flex seja este, softwares, games, aplicativos entre outros.

Bem, voltando ao assunto sobre o blog, decidi que por enquanto não irei publicar nada novo, até conseguir um tempo maior na agenda, pensei também em desativar o mesmo, mas ao ver o numero de visitas fiquei espantado com a grande procura por este assunto e mudei de idéia, e , como temos muito material bom irei deixar online até pensar em outra medida, pois a idéia deste blog nunca foi colocar coisas em ordem cronológica e sim indexar essas informações para alguém que estiver em um buscador conseguir o rápido acesso a mesma.

No mais agradeço a todos que acessaram, que acessam e comentaram e indicaram este blog. Em breve postarei mais novidades, não só do mundo de RIAS, mas sobre a web em geral.

A todos o nosso muito obrigado e quem quiser trocar informações, parcerias de desenvolvimento e outros, basta me encontrar no Twitter ou email luiztarabal@nexsite.com.br
Abraços!

Jun 21

IOS Theme for Flex Mobile Projects

Escrito por Mauro Martins em .NET, 1, 4, Adobe, Android, blog, C#, flash, Flash / Flex, iphone, map, mg, O, Ria’s Geral @ 06 21st, 2011 | via http://imauro.com/blog/ | Sem comentários
Mauro Martins
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Era apenas uma questão de tempo…



Jun 20

PHP + BDD

Escrito por Fábio Batista da Silva em 1, 2.0, 4, 6, Air, app, AR, arte, BI, C#, Componente, Componentes, dados, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, Design Patterns, development, Documentação, email, err, Ferramenta, Flex, for, framework, function, git, gmail, html, IE, if, instalação, int, LOB, Mate, mg, O, on, PHP, pt, quick, rails, rest, RIA, Ria’s Geral, S+S, Software, Sun, TAT, Tema, Teste, UI, Ved, zend @ 06 20th, 2011 | via http://www.flexria.com.br/home | Sem comentários
Fábio Batista da Silva
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá,

Nesse Post vou mostrar um pouco de desenvolvimento PHP usando BDD (Behaviour-Driven Development).
O BDD é uma prática ágil que tem como objetivo facilitar o desenvolvimento orientado a testes,
onde o software é direcionados por comportamentos, trazendo para o contexto de destes os casos de uso ou historias da aplicação.

Enquanto em TDD (Test Driven Development) testamos a aplicação de forma granular em um ambiente micro
no BDD os testes são globais voltados para a Funcionalidade, Casos de uso, Comportamentos, etc..

Como se em TDD testamos a aplicação de dentro para fora e já em BDD a aplicação é testada de fora para dentro.
Existe muito material sobre esse assunto p ai e muita gente mais preparada que eu para abordar esse assunto de forma teorica,
Então nesse Post vou mostrar na pratica um pouco de desenvolvimento PHP usando o Behat

Behat

Behat é um framework BDD em PHP 5.3 construindo sobre de componentes do Symfony2.
Behat foi inspirado no Cucumber do Rails e especialmente a parte da sintaxe das features.

A instalação do Behat pode ser feita baixando diretalente pelo git diretamente pelo do git: http://github.com/Behat/Behat
Ou instalando através do pear :

$ pear channel-discover pear.behat.org
$ pear install behat/behat

Se tudo der certo o Behat esta instalado
A versão atualmente disponível no pear é a 1.1.9
Para verificar se esta correto e ver a versão instalada execute :

$ behat -V
Behat version 1.1.9

Depois de concluir a instalação o Behat esta pronto para ser usado.
para isso vamos inicializar o projeto de testes com o Behat

$ cd path-to-my-app
$ behat --init

O comando behat –init vai criara a estruturar de diretórios usada p organizar os teste do Behat

|-- features
   |-- steps            ##Diretório dos arquivos que contem os cenários de testes
       |-- steps.php
   |-- support          ##Configurações, requires e configs de ambiente
       |-- bootstrap.php
       |-- env.php

A definição de um historias e cenários de teste é bem simples.
Utilizando algumas palavras chaves : Feature, Scenario, Given, When, Then, But or And
Os cenários são escritos em arquivos .feature que serão interpretados pelo Behat

features/contacts.feature

Feature: Contacts Registration
    In order to demonstrate the framework
    As a SouDev using BDD
    I want to register contacts

  Scenario: Add new contact
    Given a contact named "Fabio B. Silva" using the email "fabio.bat.silva@gmail.com"
      And the phone "xx xxxx-xxxx"
     When press save
     Then everything will be saved

Com a historia escrita podemos executar o Behat dentro da aplicação
O Behat vai interpretar os arquivos .feature
e mostrar quais funções vc tem que implementar para poder rodas o teste

$ cd path-to-my-app
$ behat
1 scenario (1 undefined)
4 steps (4 undefined)
0m0.03s

You can implement step definitions for undefined steps with these snippets:

$steps->Given('/^a contact named "([^"]*)" using the email "([^"]*)"$/', function($world, $arg1, $arg2) 
    throw new BehatBehatExceptionPending();
);
$steps->And('/^the phone "([^"]*)"$/', function($world, $arg1) 
    throw new BehatBehatExceptionPending();
);
$steps->When('/^press save$/', function($world) 
    throw new BehatBehatExceptionPending();
);
$steps->Then('/^everything will be saved$/', function($world) 
    throw new BehatBehatExceptionPending();
);

Essa definição dos steps que o Behat lançou pode ser copiada para um arquivo de steps.php o que facilita bastante a implementação dos teste..
Porem escrever historias em inglês pode ser meio confuso, mais o tem suporte a i18n oq nos permite escrever as historias em português.
para isso basta adicionar # language: pt_BR no inicio do arquivo .feature
com isso ganhamos as palavras chaves em português : Funcionalidade,Cenario, Scenario, Quando, Então, Entao, Dado, Mas, E

features/contacts.feature

# language: pt_BR
Funcionalidade: Cadastro de contatos
    Para demostrar o funcionamento do framework
    Como SouDev que usa BDD
    Desejo cadastrar contatos

  Cenario: Adicionar um novo contato
    Dado um usuário chamado "Fabio B. Silva" usando o email "fabio.bat.silva@gmail.com"
      E com o telefone "xx xxxx-xxxx"
     Quando pressionar salvar
     Entao os dados serão salvos

E ao executar novamente o Behat a implementação dos teste agora também vem em português :

$ cd path-to-my-app
$ behat
1 scenario (1 undefined)
4 steps (4 undefined)
0m0.03s

You can implement step definitions for undefined steps with these snippets:

$steps->Dado('/^um usuário chamado "([^"]*)" usando o email "([^"]*)"$/', function($world, $arg1, $arg2) 
    throw new BehatBehatExceptionPending();
);
$steps->E('/^com o telefone "([^"]*)"$/', function($world, $arg1) 
    throw new BehatBehatExceptionPending();
);
$steps->Quando('/^pressionar salvar$/', function($world) 
    throw new BehatBehatExceptionPending();
);
$steps->Entao('/^todos os dados serão salvos$/', function($world) 
    throw new BehatBehatExceptionPending();
);

Com essa definição a implementação dos testes para essa feature pode ser feita
features/contacts_steps.php

use AppEntitiesContact, AppEntitiesPhone, AppServicesContactService;

$steps->Dado('/^um usuário chamado "([^"]*)" usando o email "([^"]*)"$/', function($world, $arg1, $arg2) 
    $contact = new Contact();
    $contact->setName($arg1);
    $contact->setEmail($arg2);

    $world->contact = $contact;
);

$steps->E('/^com o telefone "([^"]*)"$/', function($world, $arg1) 
    $world->contact->addPhone(new Phone($arg1));
);

$steps->Quando('/^pressionar salvar$/', function($world) 
    $world->saveReturn = ContactService::getInstance()->save($world->contact);
);

$steps->Entao('/^todos os dados serão salvos$/', function($world) 
     assertTrue($world->saveReturn);
);

O BDD e TDD são ferramentas essenciais para um software bem feito,
Infeliz mente muitos “desenvolvedores” ainda tem resistência a aderir ao teste e por achar perda de tempo, tedioso, etc..
O fato é que uma suite de testes bem feita vai tornar sua aplicação muito mais estável e vai lhe economizar tempo e cabelos ao longo do projeto. rsrs

Gostei bastante do Behat é um projeto muito bem estruturado e em constante evolução a versão 2.0 esta prestes a sair
Vale apena dar uma conferida na Documentação do Behat

E Para quem tiver o interesse deixei a app no git
https://github.com/FabioBatSilva/bdd-php-behat

Abraço e até a próxima….

Jun 20

PHP com BDD

Escrito por Ebercom em 1, 2.0, 2009, 4, 6, Air, app, AR, arte, BI, C#, Componente, Componentes, dados, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, development, Diversos, Documentação, email, err, Ferramenta, Flex, for, framework, function, git, gmail, html, IE, if, instalação, int, LOB, Mate, mg, O, on, PHP, pt, quick, rails, rest, RIA, Ria’s Geral, S+S, Software, Sun, TAT, Tema, Teste, UI, Ved, zend @ 06 20th, 2011 | via http://www.flexdev.com.br/home | Sem comentários
Ebercom
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá,

Nesse Post vou mostrar um pouco de desenvolvimento PHP usando BDD (Behaviour-Driven Development).
O BDD é uma prática ágil que tem como objetivo facilitar o desenvolvimento orientado a testes,
onde o software é direcionados por comportamentos, trazendo para o contexto de destes os casos de uso ou historias da aplicação.

Enquanto em TDD (Test Driven Development) testamos a aplicação de forma granular em um ambiente micro
no BDD os testes são globais voltados para a Funcionalidade, Casos de uso, Comportamentos, etc..

Como se em TDD testamos a aplicação de dentro para fora e já em BDD a aplicação é testada de fora para dentro.
Existe muito material sobre esse assunto p ai e muita gente mais preparada que eu para abordar esse assunto de forma teorica,
Então nesse Post vou mostrar na pratica um pouco de desenvolvimento PHP usando o Behat

Behat

Behat é um framework BDD em PHP 5.3 construindo sobre de componentes do Symfony2.
Behat foi inspirado no Cucumber do Rails e especialmente a parte da sintaxe das features.

A instalação do Behat pode ser feita baixando diretalente pelo git diretamente pelo do git: http://github.com/Behat/Behat
Ou instalando através do pear :

$ pear channel-discover pear.behat.org
$ pear install behat/behat

Se tudo der certo o Behat esta instalado
A versão atualmente disponível no pear é a 1.1.9
Para verificar se esta correto e ver a versão instalada execute :

$ behat -V
Behat version 1.1.9

Depois de concluir a instalação o Behat esta pronto para ser usado.
para isso vamos inicializar o projeto de testes com o Behat

$ cd path-to-my-app
$ behat --init

O comando behat –init vai criara a estruturar de diretórios usada p organizar os teste do Behat

|-- features
   |-- steps            ##Diretório dos arquivos que contem os cenários de testes
       |-- steps.php
   |-- support          ##Configurações, requires e configs de ambiente
       |-- bootstrap.php
       |-- env.php

A definição de um historias e cenários de teste é bem simples.
Utilizando algumas palavras chaves : Feature, Scenario, Given, When, Then, But or And
Os cenários são escritos em arquivos .feature que serão interpretados pelo Behat

features/contacts.feature

Feature: Contacts Registration
    In order to demonstrate the framework
    As a SouDev using BDD
    I want to register contacts

  Scenario: Add new contact
    Given a contact named "Fabio B. Silva" using the email "fabio.bat.silva@gmail.com"
      And the phone "xx xxxx-xxxx"
     When press save
     Then everything will be saved

Com a historia escrita podemos executar o Behat dentro da aplicação
O Behat vai interpretar os arquivos .feature
e mostrar quais funções vc tem que implementar para poder rodas o teste

$ cd path-to-my-app
$ behat
1 scenario (1 undefined)
4 steps (4 undefined)
0m0.03s

You can implement step definitions for undefined steps with these snippets:

$steps->Given('/^a contact named "([^"]*)" using the email "([^"]*)"$/', function($world, $arg1, $arg2) 
    throw new BehatBehatExceptionPending();
);
$steps->And('/^the phone "([^"]*)"$/', function($world, $arg1) 
    throw new BehatBehatExceptionPending();
);
$steps->When('/^press save$/', function($world) 
    throw new BehatBehatExceptionPending();
);
$steps->Then('/^everything will be saved$/', function($world) 
    throw new BehatBehatExceptionPending();
);

Essa definição dos steps que o Behat lançou pode ser copiada para um arquivo de steps.php o que facilita bastante a implementação dos teste..
Porem escrever historias em inglês pode ser meio confuso, mais o tem suporte a i18n oq nos permite escrever as historias em português.
para isso basta adicionar # language: pt_BR no inicio do arquivo .feature
com isso ganhamos as palavras chaves em português : Funcionalidade,Cenario, Scenario, Quando, Então, Entao, Dado, Mas, E

features/contacts.feature

# language: pt_BR
Funcionalidade: Cadastro de contatos
    Para demostrar o funcionamento do framework
    Como SouDev que usa BDD
    Desejo cadastrar contatos

  Cenario: Adicionar um novo contato
    Dado um usuário chamado "Fabio B. Silva" usando o email "fabio.bat.silva@gmail.com"
      E com o telefone "xx xxxx-xxxx"
     Quando pressionar salvar
     Entao os dados serão salvos

E ao executar novamente o Behat a implementação dos teste agora também vem em português :

$ cd path-to-my-app
$ behat
1 scenario (1 undefined)
4 steps (4 undefined)
0m0.03s

You can implement step definitions for undefined steps with these snippets:

$steps->Dado('/^um usuário chamado "([^"]*)" usando o email "([^"]*)"$/', function($world, $arg1, $arg2) 
    throw new BehatBehatExceptionPending();
);
$steps->E('/^com o telefone "([^"]*)"$/', function($world, $arg1) 
    throw new BehatBehatExceptionPending();
);
$steps->Quando('/^pressionar salvar$/', function($world) 
    throw new BehatBehatExceptionPending();
);
$steps->Entao('/^todos os dados serão salvos$/', function($world) 
    throw new BehatBehatExceptionPending();
);

Com essa definição a implementação dos testes para essa feature pode ser feita
features/contacts_steps.php

use AppEntitiesContact, AppEntitiesPhone, AppServicesContactService;

$steps->Dado('/^um usuário chamado "([^"]*)" usando o email "([^"]*)"$/', function($world, $arg1, $arg2) 
    $contact = new Contact();
    $contact->setName($arg1);
    $contact->setEmail($arg2);

    $world->contact = $contact;
);

$steps->E('/^com o telefone "([^"]*)"$/', function($world, $arg1) 
    $world->contact->addPhone(new Phone($arg1));
);

$steps->Quando('/^pressionar salvar$/', function($world) 
    $world->saveReturn = ContactService::getInstance()->save($world->contact);
);

$steps->Entao('/^todos os dados serão salvos$/', function($world) 
     assertTrue($world->saveReturn);
);

O BDD e TDD são ferramentas essenciais para um software bem feito,
Infeliz mente muitos “desenvolvedores” ainda tem resistência a aderir ao teste e por achar perda de tempo, tedioso, etc..
O fato é que uma suite de testes bem feita vai tornar sua aplicação muito mais estável e vai lhe economizar tempo e cabelos ao longo do projeto. rsrs

Gostei bastante do Behat é um projeto muito bem estruturado e em constante evolução a versão 2.0 esta prestes a sair
Vale apena dar uma conferida na Documentação do Behat

E Para quem tiver o interesse deixei a app no git
https://github.com/FabioBatSilva/bdd-php-behat

Abraço e até a próxima….

Click aqui para ver o post Original
Fábio B. Silva
Fabio B. Silva
http://www.flexria.com.br

« Entradas anteriores |

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2758 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com