Próbuję napisać test Specs2, który przetestuje dane wyjściowe snippet w odpowiedzi na różne parametry, które normalnie byłyby przekazywane z szablonu , ale nie byłem w stanie wymyślić, jak to zrobić.Scala/Lift: Jak pisać testy jednostkowe, które testują odpowiedź fragmentu kodu na różne parametry?
Na przykład, w objaśnieniu urywka w tym div:
<div class="lift:Snippet.method?param1=foo"></div>
mam minięciu param1 parametru na fragmencie. Mój fragment będzie wyglądać mniej więcej tak:
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
}
}
}
Więc w moim teście, chcę sprawdzić, jak reaguje na inny fragment param1 Wartości
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"
}
}
}
Jak ustawić param1?
Jestem dużą scala czasu i wyciąg newb (pochodzących z Pythona + Django), więc jeśli jestem szczeka niewłaściwe drzewa, proszę kierować mnie na prawo. Myślę, że tak być może, cały czas googlowałem i nie znalazłem żadnych pytań, które byłyby podobne do tego.
Dzięki,
Blake
pamiętać, że wygląda podobnie jak w Lift 2.4, cecha WebSpec, której używasz, wymaga wycofanych [Specyfikacji] (https://code.google.com/p/specs/) w przeciwieństwie do [Specs2] (http://etorreborre.github.com/ specs2 /). Znalazłem cechę WebSpec2 w istocie (https://gist.github.com/2235088), przez [strona "Unit Testing Snippets with A Logged In User" na wiki portalu Assembla] (http: // www. assembla.com/wiki/show/liftweb/Unit_Testing_Snippets_With_A_Logged_In_User). –
Nie wiem, czy to pomaga przy mniejszym nakładzie: https://www.assembla.com/wiki/show/liftweb/Testing_Lift_Applications – tyoc213