Bill, Cool. If you're going to be at Silicon Valley Code Camp on Saturday, let's talk more about any mechanics.
Thanks, David On Thu, Oct 1, 2009 at 2:26 PM, Bill Venners <b...@artima.com> wrote: > > Hi David, > > Thanks. I appreciate that. I was actually already planning to request > getting some ScalaTest examples in the Lift archetypes right after > ScalaTest 1.0 comes out (on Oct 12, if all goes as planned), and have > already arranged with David Bernard to put ScalaTest examples into > simple-archetype-simple. > > I think it is great that we have three decent Scala-specific testing > tools already, specs, ScalaTest, and ScalaCheck, plus the trusty Java > tools JUnit and TestNG. People have a lot of choice, so it is good > that the archetypes would show some of the options. I would also > suggest we include a ScalaCheck example in the archetypes as well. I > can use ScalaCheck from one of the ScalaTest examples I submit if you > like that idea. The downside is that it would add one more dependency, > but really I think people should find out about ScalaCheck. > > Bill > > > On Thu, Oct 1, 2009 at 1:53 PM, David Pollak > <feeder.of.the.be...@gmail.com> wrote: > > Bill, > > Thanks for posting this. I am, by experience (I started using it, I can > use > > it enough to write basic tests, I know no more) using Specs. I would > > welcome and encourage some sample tests in Lift archetypes that use > > ScalaTest. I want to make sure that folks who pick up Lift get to > > experience ScalaTest as well as Specs... that way, folks who have a > better > > understanding of tests can make better choices. > > Thanks, > > David > > > > On Thu, Oct 1, 2009 at 1:27 PM, Bill Venners <b...@artima.com> wrote: > >> > >> Hi Ryan, > >> > >> It looks like you're currently using a JUnit TestCase. If you want an > >> easier port to something that would work you could use a ScalaTest > >> Suite like this: > >> > >> import org.scalatest.Suite > >> > >> class YourSuite extends Suite { > >> > >> val session = new LiftSession("", randomString(20), Empty) > >> val stableTime = now > >> > >> override def withFixture(test: NoArgTest) { > >> > >> S.initIfUninitted(session) { > >> val user = User.create > >> user.firstName("XXX") > >> user.lastName("YYY") > >> user.save > >> User.logUserIn(user) > >> test() > >> } > >> } > >> > >> def testValue() { > >> val xml = > >> <xml:group> > >> <tr> > >> <td> > >> <p:fullName>My Name</p:fullName> > >> </td> > >> <td> > >> <p:style>Fighter Style</p:style> > >> </td> > >> <td> > >> <p:weight>Weight</p:weight> > >> </td> > >> </tr> > >> </xml:group> > >> val trainer = new Trainer() > >> val output = trainer.showPeople(xml) > >> // seems like you need an assertion here... > >> } > >> } > >> > >> A Suite considers methods that start with "test" as tests, like JUnit > >> 3, except they don't need to result in Unit so you don't need an extra > >> () at the end. The withFixture method is an alternative to > >> beforeEach/afterEach, which are like JUnit 3's setUp/tearDown methods. > >> Each test gets passed as a function to withFixture, which is > >> responsible for executing the test by invoking the function. In this > >> case, it is executed in the context created by S. initIfUninitted. > >> This is ScalaTest 1.0, which is available as a SNAPSHOT right now but > >> should be released proper a week from Monday. > >> > >> http://www.artima.com/scalatest > >> > >> Bill > >> > >> On Thu, Oct 1, 2009 at 9:50 AM, David Pollak > >> <feeder.of.the.be...@gmail.com> wrote: > >> > Using Specs 1.6: > >> > > >> > object HelloWorldTestSpecs extends Specification { > >> > val session = new LiftSession("", randomString(20), Empty) > >> > val stableTime = now > >> > override def executeExpectations(ex: Examples, t: =>Any): Any = { > >> > S.initIfUninitted(session) { > >> > ... put your User init here. The User.logUserIn will be within > >> > the > >> > context of a session and thus session (and request) vars will be valid > >> > } > >> > } > >> > "HelloWorld Snippet" should { > >> > "Put the time in the node" in { > >> > ... do testing here > >> > } > >> > } > >> > } > >> > > >> > Hope this helps. > >> > On Thu, Oct 1, 2009 at 8:55 AM, rstradling <ryanstradl...@gmail.com> > >> > wrote: > >> >> > >> >> I have a class called > >> >> class Trainer { > >> >> def showPeople(xhtml : Group) : NodeSeq = { > >> >> val user : User = User.currentUser.open_! > >> >> ... > >> >> } > >> >> } > >> >> > >> >> I then want to write a unit test to test that returns proper xml. > >> >> > >> >> The test is written as so > >> >> def testValue() = { > >> >> val xml = > >> >> <xml:group> > >> >> <tr> > >> >> <td> > >> >> <p:fullName>My Name</p:fullName> > >> >> </td> > >> >> <td> > >> >> <p:style>Fighter Style</p:style> > >> >> </td> > >> >> <td> > >> >> <p:weight>Weight</p:weight> > >> >> </td> > >> >> </tr> > >> >> </xml:group> > >> >> val trainer = new Trainer() > >> >> val output = trainer.showPeople(xml) > >> >> () > >> >> } > >> >> > >> >> The User object inherits from MegaProtoUser. > >> >> > >> >> The problem is I am not sure how to create a mock user and sign them > >> >> in. > >> >> I have tried in my unit test > >> >> override def setUp : Unit = { > >> >> val user = User.create > >> >> user.firstName("XXX") > >> >> user.lastName("YYY") > >> >> user.save > >> >> User.logUserIn(user) > >> >> } > >> >> > >> >> The mock user log-in *seems* to work fine but when > >> >> User.currentUser.open_! is called it throws an exception on trying to > >> >> open an empty box. > >> >> > >> >> So either how do I do this or how do others do this type of testing. > >> >> I am sure I am missing something simple. > >> >> > >> >> Thanks, > >> >> ryan > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> > > >> > > >> > > >> > -- > >> > 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 > >> > > >> > > > >> > > >> > >> > >> > >> -- > >> Bill Venners > >> Artima, Inc. > >> http://www.artima.com > >> > >> > > > > > > > > -- > > 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 > > > > > > > > > > > -- > Bill Venners > Artima, Inc. > http://www.artima.com > > > > -- 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 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---