2010-02-27 4 views
1

Nous avons besoin d'un flux de travail à tester. Donc, il y a tellement de branches (Pathes) doivent tester Maintenant, nous à l'aide contextuelle Shoulda TestQuelle est la manière la plus propre de faire des tests de succursale compliqués?

comme ceci:

context "workflow one" do 
    setup do 
    #do something 
    end 

    context "branch 1 succuess" do 
    should "something" do 
    end 

    context "branch 2 succuess" do 
     should "something" do 
     end 

     context ... 
    end 
    end 

    context "branch 1 fail" do 
    should "something" do 
    end 

    context ... 
    end 
end 

Tu sais que ce sera très compliqué. Avez-vous une bonne solution?

Répondre

0

Je les diviserais généralement sur une base «par branche». Cela suppose que lorsqu'une branche "échoue", elle termine simplement le processus (et vous ne pouvez pas passer aux autres branches). Au moins, vous pouvez regrouper vos tests. EG:

context "workflow one" do 
setup do 
    #do something 
end 

    context "Testing branch 1" do 
    context "branch 1 succuess" do 
     should "something" do 
     end 

    context "branch 1 fail" do 
     should "something" do 
     end 
    end 
    end 

    # assumes branch one is successful 
    context "Testing branch 2" do 
    setup do 
     do_branch_one_success 
    end 
    context "branch 2 succuess" do 
     should "something" do 
     end 

    context "branch 2 fail" do 
     should "something" do 
     end 
    end 
    end 
... 

end 
0

Peut-être que vous pouvez simplement structurer votre code différemment?

Si vous pensez à des validations dans ActiveRecord, de nombreuses branches différentes (entrée non valide) sont transformées en liste. Chaque validation peut ensuite être testée séparément. Donc, dans votre cas, ne pouvez-vous pas transformer votre flux de travail en une liste d'actions à effectuer?

Stephan

Questions connexes