Looks nice. Singleton - ah, yes, that sounds like it will work well, good call.
On Wed, Nov 11, 2009 at 12:05 PM, David Pollak < [email protected]> wrote: > > > On Wed, Nov 11, 2009 at 7:09 AM, Alex Black <[email protected]> wrote: > >> >> What are you unhappy about? Those tests look pretty simple and slick >> to me! >> >> > Yeah, but with this change: http://reviewboard.liftweb.net/r/95/ > > You'll get: > > "Login" in { > for{ > login <- post("/api/login", "token" -> token) !@ "Failed to log in" > if (testSuccess(login)) > status <- login.get("/api/status") !@ "Failed to get status" if > (testSuccess(status)) > } { > (status.xml \ "user" \ "@id").text must_== theUser.id.toString > } > } > > > >> It looks like the JettyTestServer is a singleton inside the test suite >> - what happens if you have another test suite? I think you'd then hit >> the same problem that I did, when the second test suite tries to fire >> up Jetty it will fail because Lift has already been initialized. >> > > The example in ESME is a singleton, but the start method is actually a lazy > val, so you can call it from any test, but it will only be triggered once > per run per classloader. Does this give you what you want? If not, it'll > be some mucking around with multiple classloaders. > > > > >> >> - Alex >> >> On Nov 10, 2:25 pm, David Pollak <[email protected]> >> wrote: >> > I've just committed simple API test code up to the ESME project. The >> key >> > pieces are at: >> > >> > >> http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/test/sca...http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/test/sca. >> .. >> > >> > After spending 30 minutes with the Lift TestKit, I'm wicked unhappy with >> > it... but that will change later today. ;-) >> > >> > >> > >> > On Tue, Nov 10, 2009 at 9:51 AM, Alex Black <[email protected]> wrote: >> > >> > > My first unit test worked fine, but my second one dies: >> > >> > > ERROR - Failed to Boot >> > > java.lang.IllegalStateException: Cannot modify after boot. >> > > at >> net.liftweb.http.RulesSeq$class.safe_$qmark(LiftRules.scala:885) >> > > at net.liftweb.http.RulesSeq$class.prepend(LiftRules.scala:892) >> > > at >> net.liftweb.http.RulesSeq$$anon$3.prepend(LiftRules.scala:872) >> > > .... >> > >> > > Presumably because it has already loaded and started Lift, and my >> > > second unit test fires up Jetty again trying to start Lift again which >> > > I take it is not supported. >> > >> > > So, I figure I should either: >> > > a. refactor my tests so that I only create one jetty and lift instance >> > > ever >> > > - this will probably require 'resetting' the service somehow to ensure >> > > a blank slate between each unit test, not sure how I get a hold of the >> > > instance in question for that >> > >> > > b. somehow launch jetty/lift differently, or force lift to cleanup? >> > >> > > On Nov 9, 10:50 pm, Jonathan Ferguson <[email protected]> wrote: >> > > > We fire up Jetty populate a temp database and then run a batch of >> tests. >> > > > Seems to work well for us. >> > >> > > > Jono >> > >> > > > 2009/11/10 Alex Black <[email protected]> >> > >> > > > > Can anyone suggest some good examples or strategies to use to test >> a >> > > > > webservice written with Lift? >> > >> > > > > I've started down the path of firing up Jetty in a unit test, then >> > > > > just hitting it with say a GET and checking the response. Whats a >> > > > > good way of firing up Jetty? It looks like using ServletTester >> would >> > > > > be the way to go: >> > >> > > >> http://www.christianschenk.org/blog/testing-web-applications-with-jetty/ >> > >> > > > > could that work with Lift? >> > >> > > > > - Alex >> > >> > -- >> > Lift, the simply functional web frameworkhttp://liftweb.net >> > Beginning Scalahttp://www.apress.com/book/view/1430219890 >> > Follow me:http://twitter.com/dpp >> > Surf the harmonics >> >> > > > -- > Lift, the simply functional web framework http://liftweb.net > Beginning Scala http://www.apress.com/book/view/1430219890 > > Follow me: http://twitter.com/dpp > Surf the harmonics > > > > -- http://blog.alexblack.ca http://twitter.com/waterlooalex --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---
