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

  • 1,234 views
Uploaded on

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,234
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
11
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Talk sobre MacRuby, Sexy Specs e, dando tempo, um gostinho de HotCocoa.
  • Trabalho na Labone, recentemento desenvolvimento aplicações para iPad, iPhone e Android.

  • Existem algumas semelhanças entre as duas linguagens...
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Algum código objective-c comparado com código Ruby
    Breve visão sobre semelhanças/diferenças
  • O MacRuby é uma implementação da linguagem Ruby 1.9 sobre o Objective-C runtime.
    A versão 0.6 é considerada estável, a princípio permite construir aplicações cocoa totalmente funcionais.
    O projeto é liderado pela própria Apple.
  • O objetivo principal do projeto é a construção de aplicações para mac OS X
  • No site do macruby, existe alguma documentação e também o “instalador” que adiciona funcionalidade (templates de projeto) ao Xcode.
    Também é possível a instação via rvm.
  • No site do macruby, existe alguma documentação e também o “instalador” que adiciona funcionalidade (templates de projeto) ao Xcode.
    Também é possível a instação via rvm.
  • No macirb, é possível ver que as classes do Ruby são na verdade classes Objective-C.
    Os métodos de ruby são acessíveis e também os de Objective-C.
  • Também é possível invocar as classes/métodos Objective-C a partir do Ruby.
  • Também é possível invocar as classes/métodos Objective-C a partir do Ruby.
  • Também é possível invocar as classes/métodos Objective-C a partir do Ruby.
  • Cocoa é um “ambiente” de programação baseado em Objective-C,
    um conjunto de apis, frameworks...
    para desenvolvimento Mac OS X. O MacRuby é “integrado” com Cocoa.
    E quanto ao iOS, o s.o. que roda no iPhone no iPad?
  • Ainda não é possível construir aplicações para iOS usando MacRuby.
    Mas os rumores já são muitos de que vem algo por aí.
  • Recentemente um engenheiro da apple comentou algo sobre, no twitter...
  • RSpec.
    Existem soluções “nativas” no xcode para TDD, mas o RSpec é “outro nível”.
    Vamos ver então como fazer para criar as specs executáveis “contra” nosso código Objective-C.
  • Instalação do RSpec via macirb.
    Por enquanto ainda não me aventurei com o RSpec2, shame on me.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • No diretório /specs/criei um arquivo my_twitter_spec.rb
    Vejam que para escrever minhas specs posso usar meu editor favorito.
  • E então no X Code, ao executar o build, ele falha.
  • Crio uma classe MyTwitter
  • E o teste passa.
  • Agora crio um “should” para uma funcionalidade que minha classe
    ainda não tem.
    Notem que estou chamando uma classe que foi criada no xcode, em Objective-C (MyTwitter)
  • E como o esperado o teste falha.
    Vejam que agora ele dá os detalhes (que nada mais é que a execução padrão do RSpec).
  • Implemento meu método.
  • E meu build fica verdinho novamente.
  • Testei meu “domínio” criado em objective-c usando somente RSpec! #FTW

  • Obrigado senhores, já podem vaiar agora.

Transcript

  • 1. MacRuby & Sexy Specs 1
  • 2. Ricardo Valeriano (eu) (Web? Mobile?) Developer PHP ¬¬, Java, C#, JavaScript =), Ruby #FTW github.com/ricardovaleriano @ricardolho
  • 3. Reflective Object-Oriented Dynamic Smalltalk Inspiration...
  • 4. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"];
  • 5. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"];
  • 6. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio,
  • 7. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio, máno
  • 8. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio, máno .“
  • 9. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; array = [] array << “ruby”
  • 10. MacRuby Ruby 1.9 v 0.6 - “Stable” Mac OS X applications Liderado pela Apple
  • 11. http://www.macruby.org
  • 12. http://www.macruby.org
  • 13. http://www.macruby.org
  • 14. =[
  • 15. 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
  • 16. Obrigado Buuuuhhhhh @ricardolho