• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sexy Specs on XCode with MacRuby and Rspec (Lightning Talk)
 

Sexy Specs on XCode with MacRuby and Rspec (Lightning Talk)

on

  • 1,639 views

How to use RSpec to write specs on your Objective-C code, and integrate this with XCode's build process.

How to use RSpec to write specs on your Objective-C code, and integrate this with XCode's build process.

Statistics

Views

Total Views
1,639
Views on SlideShare
1,614
Embed Views
25

Actions

Likes
1
Downloads
11
Comments
0

3 Embeds 25

http://gurusp.org 20
http://www.linkedin.com 3
http://www.gurusp.org 2

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Talk sobre MacRuby, Sexy Specs e, dando tempo, um gostinho de HotCocoa. <br />
  • Trabalho na Labone, recentemento desenvolvimento aplica&#xE7;&#xF5;es para iPad, iPhone e Android. <br /> <br />
  • Existem algumas semelhan&#xE7;as entre as duas linguagens... <br />
  • Mas com certeza essas semelhan&#xE7;as n&#xE3;o est&#xE3;o na sintaxe. <br /> Ruby tem esse &#x201C;problema&#x201D;, ap&#xF3;s ele toda syntaxe parece estranha, e n&#xE3;o se expressar direito. <br />
  • Mas com certeza essas semelhan&#xE7;as n&#xE3;o est&#xE3;o na sintaxe. <br /> Ruby tem esse &#x201C;problema&#x201D;, ap&#xF3;s ele toda syntaxe parece estranha, e n&#xE3;o se expressar direito. <br />
  • Mas com certeza essas semelhan&#xE7;as n&#xE3;o est&#xE3;o na sintaxe. <br /> Ruby tem esse &#x201C;problema&#x201D;, ap&#xF3;s ele toda syntaxe parece estranha, e n&#xE3;o se expressar direito. <br />
  • Mas com certeza essas semelhan&#xE7;as n&#xE3;o est&#xE3;o na sintaxe. <br /> Ruby tem esse &#x201C;problema&#x201D;, ap&#xF3;s ele toda syntaxe parece estranha, e n&#xE3;o se expressar direito. <br />
  • Algum c&#xF3;digo objective-c comparado com c&#xF3;digo Ruby <br /> Breve vis&#xE3;o sobre semelhan&#xE7;as/diferen&#xE7;as <br />
  • O MacRuby &#xE9; uma implementa&#xE7;&#xE3;o da linguagem Ruby 1.9 sobre o Objective-C runtime. <br /> A vers&#xE3;o 0.6 &#xE9; considerada est&#xE1;vel, a princ&#xED;pio permite construir aplica&#xE7;&#xF5;es cocoa totalmente funcionais. <br /> O projeto &#xE9; liderado pela pr&#xF3;pria Apple. <br />
  • O objetivo principal do projeto &#xE9; a constru&#xE7;&#xE3;o de aplica&#xE7;&#xF5;es para mac OS X <br />
  • No site do macruby, existe alguma documenta&#xE7;&#xE3;o e tamb&#xE9;m o &#x201C;instalador&#x201D; que adiciona funcionalidade (templates de projeto) ao Xcode. <br /> Tamb&#xE9;m &#xE9; poss&#xED;vel a insta&#xE7;&#xE3;o via rvm. <br />
  • No site do macruby, existe alguma documenta&#xE7;&#xE3;o e tamb&#xE9;m o &#x201C;instalador&#x201D; que adiciona funcionalidade (templates de projeto) ao Xcode. <br /> Tamb&#xE9;m &#xE9; poss&#xED;vel a insta&#xE7;&#xE3;o via rvm. <br />
  • No macirb, &#xE9; poss&#xED;vel ver que as classes do Ruby s&#xE3;o na verdade classes Objective-C. <br /> Os m&#xE9;todos de ruby s&#xE3;o acess&#xED;veis e tamb&#xE9;m os de Objective-C. <br />
  • Tamb&#xE9;m &#xE9; poss&#xED;vel invocar as classes/m&#xE9;todos Objective-C a partir do Ruby. <br />
  • Tamb&#xE9;m &#xE9; poss&#xED;vel invocar as classes/m&#xE9;todos Objective-C a partir do Ruby. <br />
  • Tamb&#xE9;m &#xE9; poss&#xED;vel invocar as classes/m&#xE9;todos Objective-C a partir do Ruby. <br />
  • Cocoa &#xE9; um &#x201C;ambiente&#x201D; de programa&#xE7;&#xE3;o baseado em Objective-C, <br /> um conjunto de apis, frameworks... <br /> para desenvolvimento Mac OS X. O MacRuby &#xE9; &#x201C;integrado&#x201D; com Cocoa. <br /> E quanto ao iOS, o s.o. que roda no iPhone no iPad? <br />
  • Ainda n&#xE3;o &#xE9; poss&#xED;vel construir aplica&#xE7;&#xF5;es para iOS usando MacRuby. <br /> Mas os rumores j&#xE1; s&#xE3;o muitos de que vem algo por a&#xED;. <br />
  • Recentemente um engenheiro da apple comentou algo sobre, no twitter... <br />
  • RSpec. <br /> Existem solu&#xE7;&#xF5;es &#x201C;nativas&#x201D; no xcode para TDD, mas o RSpec &#xE9; &#x201C;outro n&#xED;vel&#x201D;. <br /> Vamos ver ent&#xE3;o como fazer para criar as specs execut&#xE1;veis &#x201C;contra&#x201D; nosso c&#xF3;digo Objective-C. <br />
  • Instala&#xE7;&#xE3;o do RSpec via macirb. <br /> Por enquanto ainda n&#xE3;o me aventurei com o RSpec2, shame on me. <br />
  • passos: <br /> criar novo projeto no xcode <br /> criar uma classe <br /> setar as propriedades do projeto (garbage collection supported) <br /> alterar o script de building do teste (aqui &#xE9; um script ruby) <br /> <br /> O que vou fazer &#xE9; usar a automa&#xE7;&#xE3;o do build que o xcode permite para executar minhas specs. <br />
  • passos: <br /> criar novo projeto no xcode <br /> criar uma classe <br /> setar as propriedades do projeto (garbage collection supported) <br /> alterar o script de building do teste (aqui &#xE9; um script ruby) <br /> <br /> O que vou fazer &#xE9; usar a automa&#xE7;&#xE3;o do build que o xcode permite para executar minhas specs. <br />
  • passos: <br /> criar novo projeto no xcode <br /> criar uma classe <br /> setar as propriedades do projeto (garbage collection supported) <br /> alterar o script de building do teste (aqui &#xE9; um script ruby) <br /> <br /> O que vou fazer &#xE9; usar a automa&#xE7;&#xE3;o do build que o xcode permite para executar minhas specs. <br />
  • passos: <br /> criar novo projeto no xcode <br /> criar uma classe <br /> setar as propriedades do projeto (garbage collection supported) <br /> alterar o script de building do teste (aqui &#xE9; um script ruby) <br /> <br /> O que vou fazer &#xE9; usar a automa&#xE7;&#xE3;o do build que o xcode permite para executar minhas specs. <br />
  • No diret&#xF3;rio /specs/criei um arquivo my_twitter_spec.rb <br /> Vejam que para escrever minhas specs posso usar meu editor favorito. <br />
  • E ent&#xE3;o no X Code, ao executar o build, ele falha. <br />
  • Crio uma classe MyTwitter <br />
  • E o teste passa. <br />
  • Agora crio um &#x201C;should&#x201D; para uma funcionalidade que minha classe <br /> ainda n&#xE3;o tem. <br /> Notem que estou chamando uma classe que foi criada no xcode, em Objective-C (MyTwitter) <br />
  • E como o esperado o teste falha. <br /> Vejam que agora ele d&#xE1; os detalhes (que nada mais &#xE9; que a execu&#xE7;&#xE3;o padr&#xE3;o do RSpec). <br />
  • Implemento meu m&#xE9;todo. <br />
  • E meu build fica verdinho novamente. <br />
  • Testei meu &#x201C;dom&#xED;nio&#x201D; criado em objective-c usando somente RSpec! #FTW <br />
  • <br />
  • Obrigado senhores, j&#xE1; podem vaiar agora. <br />

Sexy Specs on XCode with MacRuby and Rspec (Lightning Talk) Sexy Specs on XCode with MacRuby and Rspec (Lightning Talk) Presentation Transcript

  • MacRuby & Sexy Specs 1
  • Ricardo Valeriano (eu) (Web? Mobile?) Developer PHP ¬¬, Java, C#, JavaScript =), Ruby #FTW github.com/ricardovaleriano @ricardolho
  • Reflective Object-Oriented Dynamic Smalltalk Inspiration...
  • NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"];
  • NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"];
  • NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio,
  • NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio, máno
  • NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio, máno .“
  • NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; array = [] array << “ruby”
  • MacRuby Ruby 1.9 v 0.6 - “Stable” Mac OS X applications Liderado pela Apple
  • http://www.macruby.org
  • http://www.macruby.org
  • http://www.macruby.org
  • =[
  • Recapitulando Usei MacRuby para instalar gems Usei o XCode para criar código Objective -C Para iOS, bastaria usar os ‘retain’ e ‘releases’ Criei specs no editor que já uso com Ruby Usei a automação de Build para rodar as Specs
  • Obrigado Buuuuhhhhh @ricardolho