/tar

Testowanie Aplikacji Ruby, 2016/17

Primary LanguageRuby

Testowanie aplikacji Ruby, 2016/17

There are only two types of theories [programms]:

  1. Theories that are known to be wrong, as they were tested and adequately rejected.
  2. Theories that have not yet been known to be wrong, not falsified yet, but are exposed to be wrong.
    K. Popper
    Why is the theory [program] never right?

Ruby

  1. Konfiguracja środowiska do pracy z projektami w Ruby:
  1. Wprowadzenie do języka Ruby:

  1. Szablon projektu Ruby + RSpec.
  2. Ogólnie o testowaniu:
    • Learn X in Y minutes, where X = Rspec, Capybara, Factory Girl.
  3. Wprowadzenie do RSpec.
  4. Testy jednostkowe:
    • Ruby – przykłady w TestUnit
  5. Mostly Static Pages – testowanie kontrolerów i widoków:
  6. Refaktoryzacja kodu.
  7. Pokrycie kodu testami:
  8. Doubles, mocks i stubs.
  9. Praca z Legacy Code (zastanym kodem, kodem niepokrytym testami).

RSpec

  1. David Chelimsky, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp, Dan North. The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends.
  2. Robert C. Martin. Czysty kod.
  3. Dokumentacja RSpec:
  1. Better Specs – how to describe your methods, use context

Dokumentacja i inne użyteczne rzeczy

Ruby:

  1. Ruby Koans – Learn Ruby with the Neo Ruby Koans.
  2. Jay Fields, Shane Harvie, Martin Fowler with Kent Beck. Refactoring – Ruby edition.
  3. Ruby Style Guide – a community-driven Ruby coding style guide
  4. Get the Lowdown on Ruby Modules

Git:

Atom (command palette -> cmd+shift+p):

Polskie literki (ą, Ś) oraz nowe i nadpisanie keybinding w systemie Darwin. Dopisujemy w pliku ~/.atom/keymap.cson:

'.platform-darwin atom-text-editor':
  'alt-a': 'native!'
  'alt-shift-s': 'unset!'
  'ctrl-shift-i': 'auto-indent:apply'
  'cmd-shift-m': 'markdown-preview:toggle'

Większe literki w oknie script i linter oraz w UI. Dopisujemy w pliku ~/.atom/styles.less:

@ui-font-size: 16px;

.script-view {
 .panel-body pre {
   background: @tool-panel-background-color;
   color: @text-color;
   font-size: 1.6rem;
 }
 .output {
   font-size: 1.6rem;
 }
 .stderr {
   color: @text-color-error;
   font-size: 1.6rem;
 }
}

linter-message {
  font-size: @ui-font-size;
}

.rspec-console.rspec {
   background-color: white;
   color: black;
   overflow: scroll;
 }
.rspec-console.rspec {
  pre,
  pre div atom-text-editor,
  code,
  tt {
    font-size: @ui-font-size;
    font-family: PT Mono, monospace;
  }
  .rspec-output {
    background: #fff;
    color: #000;
  }
}

Continuous Integration and Deployment:

  1. Codeship.
  2. Travis – niestety usługa płatna dla repozytoriów prywatnych.

Fajne:

  1. Codility – we test coders