2012-02-15 6 views
5

En un esfuerzo por utilizar Cucumber para un script de línea de comandos, he instalado la gema de aruba según las instrucciones provistas. Está en mi Gemfile, puedo comprobar que la versión correcta está instalado y he incluidoVerificar la salida de "comando" debe contener un bloqueo inesperado con NilClass

require 'aruba/cucumber' 

en 'características/env.rb'

Con el fin de asegurarse de que funciona, me escribió el siguiente escenario :

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
Then the output from "ls -la" should contain "drw" 

asumiendo que la cosa debería fallar.

Se falla, pero falla por las razones equivocadas:

@announce 
Scenario: Testing cucumber/aruba     
    Given a blank slate       
    Then the output from "ls -la" should contain "drw" 
     You have a nil object when you didn't expect it! 
     You might have expected an instance of Array. 
     The error occurred while evaluating nil.[] (NoMethodError) 
     features/dataloader.feature:9:in `Then the output from "ls -la" should contain "drw"' 

Alguien tiene alguna idea de por qué esto no está funcionando? Esto parece ser un comportamiento aruba muy básico.

Respuesta

8

Falta un paso 'Cuando' - la salida de aruba debe contener "el paso requiere que el comando ya se haya ejecutado (no lo ejecuta él solo, solo lo busca).

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
    When I run `ls -la` 
    Then the output from "ls -la" should contain "drw" 

Esto produce, en mi máquina:

@announce 
Scenario: Testing cucumber/aruba      # features/test_aruba.feature:8 
    When I run `ls -la`        # aruba-0.4.11/lib/aruba/cucumber.rb:56 
     $ cd /Users/d.chetlin/dev/mine/ladder/tmp/aruba 
     $ ls -la 
     total 0 
     drwx------ 2 d.chetlin staff 68 Feb 15 23:38 . 
     drwx------ 7 d.chetlin staff 238 Feb 15 23:38 .. 

    Then the output from "ls -la" should contain "drw" # aruba-0.4.11/lib/aruba/cucumber.rb:86 

1 scenario (1 passed) 
2 steps (2 passed) 
0m0.465s 
+0

Gracias. Había asumido que el paso "la salida de" ls -la "debería contener" drw "'también ejecutó el comando. Pero aparentemente no es así. Separar los dos en dos pasos separados hizo el truco. – Agazoom

+0

si no le importa aceptar la respuesta, en ese caso, lo agradecería :-) – checkorbored

+0

Hecho. Lo siento ... algo nuevo en esta cosa de stackoverflow. :-) – Agazoom

Cuestiones relacionadas