2017-04-05 2 views
0

J'essaie de créer des tests API pilotés par les données en utilisant Test :: Unit pour ruby. L'intention éventuelle est de lire une série de cas de test dans un fichier .csv. En cherchant quelque chose qui serait l'équivalent de @dataprovider pour testng, j'ai trouvé une classe appelée Data qui ressemble exactement à ce dont j'ai besoin.Utilisation de Test :: Unit :: Data

http://www.rubydoc.info/github/test-unit/test-unit/Test/Unit/Data/ClassMethods

Cependant, quand j'essayé de créer un test pour essayer de le faire fonctionner, je reçois une erreur disant

« initial_test.rb: 4: <class:InitialTest>': undefined method données » pour InitialTest: Classe (NoMethodError) "

Code

je courais:

require "test/unit" 
class InitialTest < Test::Unit::TestCase 
    data("true" => [true], 
     "false" => [false]) 
    def test_true_is_true(data) 
     value = data 
     assert(false, "FAIL!") 
    end 
end 

Je ne peux pas sembler trouver mention de la classe Data en dehors de la documentation. Quelqu'un at-il utilisé cette classe? Est-ce que je manque quelque chose?

Répondre

0

Je ne suis pas familier avec ce module en particulier, mais étant donné que data est définie comme une méthode d'instance sur Test::Unit::Data et Test::Unit::Data est un module, cela fonctionne:

class YourTest < Test::Unit::TestCase 
    include Test::Unit::Data 

    data(…) 
end 

Cela dit, vous allez Vous voulez regarder de plus près les docs que vous avez liés puisque votre exemple ressemble à copy-pasta.

+0

Merci. Je voulais surtout juste avoir un test de base pour travailler afin de m'assurer que j'avais la syntaxe juste avant d'essayer de faire quelque chose de plus compliqué. C'est ma première tentative d'utilisation de Test :: Unit. – mleewing

0

Il s'avère que le problème était que j'utilisais une ancienne version de Ruby qui n'incluait pas la classe que j'essayais d'utiliser. La mise à jour vers une version plus récente a résolu le problème.