में एक स्निपेट का परीक्षण करना मैं एक साधारण स्निपेट बना रहा हूं जो Box[String]
को एक सहायक वर्ग के लिए उपयोगकर्ता-एजेंट के अनुरोध के साथ पास करना चाहिए जो सीएसएस वर्गों को वापस भेजता है जिसे HTML तत्व में जोड़ा जाना चाहिए। मैं ऐसा इसलिए कर रहा हूं क्योंकि लिफ्ट को एचटीएमएल 5boilerplate में सशर्त टिप्पणियों के साथ एचटीएमएल प्रतिक्रिया प्रदान करने में मुश्किल लगती है। यह वही है मैं अब है और यह काम करता है:लिफ्ट
object LiftBoilerplateSpecs extends Specification {
val session = new LiftSession("", randomString(20), Empty)
"LiftBoilerplate" should {
"add 'no-js' to the class of an html tag element" in {
val snippet = new LiftBoilerplate
val result = snippet.render(<html><head></head><body>test</body></html>)
result must ==/(<html class="no-js"><head></head><body>test</body></html>)
}
}
}
इस परीक्षा में विफल रहता है के बाद से S.request
Empty
है:
class LiftBoilerplate {
def render = "html [class+]" #> getClassForUserAgent(S.request)
private def getClassForUserAgent(request:Box[Req]) = request match {
case Full(r) => LiftBoilerplateHelper.getHtmlClass(r.userAgent)
case _ => ""
}
}
मेरे समस्या यह है कि मैं इस तरह के लिए एक इकाई परीक्षण लिखने के लिए चाहते हैं। उपयोगकर्ता के साथ एक मॉक किए गए अनुरोध के साथ स्निपेट की आपूर्ति करने के लिए मुझे क्या करना चाहिए?
अब तक मैं http://www.assembla.com/spaces/liftweb/wiki/Unit_Testing_Snippets_With_A_Logged_In_User
और
http://www.assembla.com/spaces/liftweb/wiki/Mocking_HTTP_Requests
पर ध्यान दिया है, लेकिन मुझे समझ नहीं आता कि कैसे अपने लक्ष्य को हासिल करने के लिए।
बहुत बढ़िया है, लेकिन जहां उपयोगकर्ता एजेंट सेट है ? इसे 'ParamCalcInfo' को दिए गए' मानचित्र 'में जोड़ा जाना चाहिए? –
नहीं, Req() का 5 वां परम एक HttpRequest है। आपको वांछित शीर्षलेख (उदा। उपयोगकर्ता-एजेंट) –
के साथ इसका एक उदाहरण पास करना चाहिए, मैंने मॉक किए गए अनुरोध को दिखाने के लिए उत्तर अपडेट किया है। –