2009-04-08 3 views
3

Super-débutant points faciles question rubis. J'essaye d'apprendre du rubis en programmant les problèmes Project Euler. Donc, j'ai un testComment définir les constantes de classe-portée dans ruby?

class ProjectEuler_tests < Test::Unit::TestCase 
    @solution = 123456 # Not the answer so as not to be a spoiler 
    def test_problem_1 
    assert_equal(@solution, ProjectEuler1.new.solve) 
    end 
end 

Mais cela ne fonctionne pas, @solution est nulle lorsque le test s'exécute. Quelle est la bonne façon de l'assigner à la portée de la classe?

Répondre

6

Class constants en rubis commencer par un omble chevalier en majuscules:

class ProjectEuler_tests < Test::Unit::TestCase 
    SOLUTION = 123456 # Not the answer so as not to be a spoiler 
    def test_problem_1 
    assert_equal(SOLUTION, ProjectEuler1.new.solve) 
    end 
end