2010-12-10 36 views
1

Je rencontre des problèmes lors de l'exécution d'un test qui utilise @DataProvider de TestNg pour fournir des données à un test écrit en scala. Voici ce que j'ai jusqu'ici.Utilisation de TestNG @DataProvider dans Scala

import org.testng.annotations._ 
import org.testng.Assert 
import org.scalatest.testng.TestNGSuite 
import java.lang.Boolean 

class PieceTest extends TestNGSuite { 

    @DataProvider(name= "pieceMovesProvider") 
    def pieceMovesProvider() = { 
    Array[Object](Array[Object](BISHOP, Position(0,0), Position(1,1), Boolean.TRUE)) 
    } 


    @Test(dataProvider = "pieceMovesProvider") 
    def testCanTake(piece: Piece, from: Position, to: Position, result: Boolean) = { 
    Assert.assertEquals(result, piece.canTake(from, to)) 
    //Moves should be commutative 
    Assert.assertEquals(result, piece.canTake(to, from)) 
    } 

    @Test def hello() = { 
    print(1) 
    } 
} 

Quand je lance le test, les passes de test bonjour mais l'autre test est sauté sans erreur ou explaination. Une idée de ce qui se passe ici?

Répondre

1

Le type de retour du fournisseur de données était incorrect. Il aurait dû être

@DataProvider(name= "pieceMovesProvider") 
    def pieceMovesProvider() = { 
    Array(Array[Object](BISHOP, Position(0,0), Position(1,1), Boolean.TRUE)) 
    } 
+0

correcte, il est l'objet [] [], chaque tableau correspondant aux paramètres de votre méthode d'essai –

+0

Faut-il même explicitement que c'est un tableau [Objet] du tout? Je pense que le type déduit devrait être correct ici. –