Sto provando a scrivere un test Specs2 che testerà l'output di un frammento in risposta a diversi parametri che normalmente verrebbero passati da un modello , ma non sono stato in grado di capire come farlo.Scala/Lift: come scrivere test di unità che testano la risposta di un frammento a diversi parametri
Ad esempio, con la didascalia frammento in questo div:
<div class="lift:Snippet.method?param1=foo"></div>
sto passando il parametro param1 al snippet. Il mio frammento sarebbe simile a questa:
class Snippet {
def method(in:NodeSeq):NodeSeq = {
val param1 = S.attr("param1") openOr ""
param1 match {
case "foo" => //do something
case "bar" => //do something else
case _ => //do yet another thing
}
}
}
Quindi entro la mia prova, voglio verificare come il frammento di risponde alle diverse param1 valori
class SnippetTest extends Specification {
"Snippet" should {
"do something" in {
val html = <ul>
<li class="first">
<li class="second">
<li class="third">
</ul>
//I need to set param1 here somehow
val out = Snippet.method(html)
//then check that it did what it was supposed to
out.something must be "xyz"
}
}
}
Come faccio a impostare param1?
Sono un grande tempo scala e lift newb (proveniente da python + django), quindi se sto abbaiando dall'albero sbagliato, per favore indirizzami a quello giusto. Penso che potrebbe essere il caso, sono stato googling su questo tutto il giorno e non ho trovato alcuna domanda lontanamente simile a questo.
Grazie,
Blake
Nota che sembra come in Lift 2.4, la caratteristica WebSpec che usi richiede la deprecata [Specifiche] (https://code.google.com/p/specs/) in contrasto con [Specs2] (http://etorreborre.github.com/ specs2 /). Ho trovato un tratto WebSpec2 in un gist (https://gist.github.com/2235088), attraverso [pagina "Frammenti di test delle unità con un utente registrato" nella wiki di Assembla Lift] (http: // www. assembla.com/wiki/show/liftweb/Unit_Testing_Snippets_With_A_Logged_In_User). –
Non so se questo aiuta meno di un po ': https://www.assembla.com/wiki/show/liftweb/Testing_Lift_Applications – tyoc213