These kind of tests are actually not in isolations between lambdas. You often want to pass an id or value between blocks to be reused. I don't think lambdas are porous enough for that. That would be surprising.
Emmanuel On Fri 2014-04-25 10:41, Gunnar Morling wrote: > Hey, > > I've played around a bit with the idea of using Java 8 lambdas to make > tests easier to write and read. We have many tests which open a session and > TX, do some stuff, commit, open a new TX (and/or session), do some > assertions and so on: > > Session session = openSession(); > Transaction transaction = session.beginTransaction(); > > // heavy testing action... > transaction.commit(); > session.clear(); > > transaction = session.beginTransaction(); > > // load, assert... > transaction.commit(); > session.clear(); > > The same could look like this using Java 8 lambdas: > > Foo foo = inTransactionWithResult( (session, tx) -> { > // heavy testing action... > } ); > > inTransaction( (session, tx) -> { > // load, assert... > } ); > > Extracting the session/TX handling removes quite some clutter and focuses > more on the actual testing logic. It also avoids problems due to dangling > transactions e.g. in case of assertion failures as the TX handling is done > in a finally block in inTransaction(). > > At this point I've just done a quick POC and would be interested in > feedback whether you think that's worth pursuing or not. Note that > different language levels can be used for test and main code, so we could > make use of lambdas in tests while ensuring Java 6 compatibility for the > delivered artifacts. > > --Gunnar > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev