Tôi đang cố gắng viết một bài kiểm tra Specs2 để kiểm tra đầu ra của đoạn mã theo các tham số khác nhau. , nhưng tôi đã không thể tìm ra cách để làm điều đó.Scala/Lift: Làm cách nào để viết các bài kiểm tra đơn vị kiểm tra phản hồi của một đoạn mã với các tham số khác nhau
Ví dụ, với các callout đoạn trong div này:
<div class="lift:Snippet.method?param1=foo"></div>
Tôi đang đi qua các tham số param1 đối với đoạn. Đoạn tôi sẽ giống như thế này:
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
}
}
}
Vì vậy, trong thử nghiệm của tôi, tôi muốn kiểm tra cách đoạn đáp ứng param1 khác nhau các giá trị
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"
}
}
}
Làm thế nào để tôi thiết param1?
Tôi là một scala thời gian lớn và nâng newb (đến từ python + django), vì vậy nếu tôi sủa cây sai, xin vui lòng hướng dẫn tôi đến đúng. Tôi nghĩ rằng có thể là trường hợp, tôi đã googling về điều này cả ngày và đã không tìm thấy bất kỳ câu hỏi từ xa tương tự như thế này.
Cảm ơn,
Blake
Lưu ý rằng nó trông như trong Lift 2.4, đặc tính WebSpec mà bạn sử dụng yêu cầu [Specs] không được chấp nhận (https://code.google.com/p/specs/) như trái ngược với [Specs2] (http://etorreborre.github.com/ specs2 /). Tôi đã tìm thấy một đặc điểm WebSpec2 trong một gist (https://gist.github.com/2235088), thông qua [trang "Đoạn trích kiểm tra đơn vị với người dùng đã đăng nhập" trên wiki nâng Assembla] (http: // www. assembla.com/wiki/show/liftweb/Unit_Testing_Snippets_With_A_Logged_In_User). –
Không biết điều này có giúp ích ít hơn không: https://www.assembla.com/wiki/show/liftweb/Testing_Lift_Applications – tyoc213