2011-05-03 5 views
5

Estoy un poco perplejo por mi problema. Estoy usando ruby ​​1.8.7, carriles 2.3.2. Estoy intentando utilizar la función 'omit' en la Unidad de prueba 2.3.0. Aquí está mi prueba:Error al usar la función 'omit' en la Unidad de prueba 2.3.0

def test_create_reward_program 
    omit("Pending") 

    reward_program = RewardProgram.find_by_program_name("test_foo") 
    assert_equal "test_foo", reward_program.program_name 

end 

Cuando corro 'prueba de rake', me sale el siguiente:

1) Error: 
test_create_reward_program(AwardControllerTest): 
Test::Unit::OmittedError: Pending 
    /test/functional/award_controller_test.rb:43:in `test_create_reward_program' 


148 tests, 261 assertions, 0 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications 

0% pasado

No sé por qué está marcado como " error 'cuando debería marcarlo como' omisión '. ¿Nadie sabe?

También he notado que esto hace el trabajo:

def test_create_reward_program 
    omit "Pending" do 
    reward_program = RewardProgram.find_by_program_name("test_foo") 
    assert_equal "test_foo", reward_program.program_name 
    end   
end 

Todos los tutoriales y ejemplos que he encontrado indica que mi primer ejemplo debería funcionar.

+0

Tengo exactamente el mismo problema, has encontrado una solución? – user789148

+0

¿Alguna vez encontró una solución a esta? –

Respuesta

2

Al observar el código para Test :: Unit 2.3.0, ese es precisamente el comportamiento codificado. Lanza a menos que se le dé un bloqueo.

Las listas documentation la fuente para omit como:

# File lib/test/unit/omission.rb, line 77 
def omit(message=nil, &block) 
    message ||= "omitted." 
    if block_given? 
    omission = Omission.new(name, filter_backtrace(caller), message) 
    add_omission(omission) 
    else 
    raise OmittedError.new(message) 
    end 
end 

Por cierto, si alguna vez cambia, rieles 3.1.0.rc1, que se ejecuta en Rubí 1.9.2p0, que agrupa Minitest, no define omit pero agrega skip. Por ejemplo:

# test/unit/bird_test.rb 
require 'test_helper' 

class BirdTest < ActiveSupport::TestCase 
    test "creation" do 
    bird = Bird.new 
    assert_not_nil bird 
    end 

    test "not implemented" do 
    skip 
    assert false 
    end 

end 

El uso de la gema turn a bonito-imprimir mi salida, me sale:

$ rake test:units 
Started 

BirdTest: 
    PASS creation (0.06s) 
    SKIP not implemented (0.00s) 

Finished in 0.060828 seconds. 

2 tests, 1 assertions, 0 failures, 0 errors, 1 skips 
Cuestiones relacionadas