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
-~----------~----~----~----~------~----~------~--~---

Reply via email to