live blogging from qcon new york

Monday

Tuesday

Wednesday

Random info about the conferenece

  • Each track has an open space.
  • 5 editorial tracks and one sponsor track
  • Different tracks each day
  • 130 speakers
  • 900 attendees
  • Hallway track – 25 minutes between sessions so time to talk
  • Badges are shorter with names bigger so easier to see name
  • Have a white lanyard you can wear to optout of photos
  • Healthy food – gulten free and vegan options
  • Vote green/yellow/red after each session. If go online, can see how you voted and provide text feedback.
  • Track preview so you gt. 30 second glance at each session and can pick better

automated testing for digital experiences using junit 5 – live blogging from spring days

Automated Testing for Digital Experiences Using JUnit 5
Speaker: Justin Baumgartner
See list of all blog posts from conference

General

  • Asked how many use JUnit 4. Almost everyone. [didn’t ask about TestNG, but did cite most used framework in general]
  • JUnit 4 is ten years old
  • “It’s all about the tests” – TDD/CI/CD – create. more importance on tests

Gaps in JUnit 4

  • Tight coupling between the APIs we use to write tests and the ones build tools use. Separating the jars lets progress at different speeds
  • Built on Java 5. Can’t use lambdas [aside from a tiny bit in assertj]
  • Runner restrictions – can only have one
  • Rules aren’t flexible enough

JUnit 5

  • Release in early fall
  • New architecture: JUnit platform (for build tools and IDEs to discover and execute tests), JUnit Jupiter (for writing tests), JUnit Vintage (to run legacy tests)
  • Potential for Cucumber or Spock runner so can run all tests in one place
  • Extension model: Can hook into life cycle callbacks. Used instead of runners/rules. An extension point is an interface. Example BeforeEachCallback. Need to be stateless; get TestExtensionContext as parameter. Can implement multiple callback if want called multiple times and store state in getStore(context).
  • Can pass parameters into test methods using @ExtendWith(xxx.class) so narrow scope. Implement ParameterResolver to create the object you want to mock.
  • Dynamic tests: create tests at runtime. Not expected to use often. @TestFactory and then create tests as lambdas. Each dynamicTest in list is an actual test (vs run in a loop
  • @ParmeterizedTest and @ValueSources – hard code parameters, read from file. [need to look at how to run “legacy” style parameterized test – answer – there’s. a @MethodSource where you can havve any logic]
  • RepeatedTest(x) – to run test a bunch of times
  • @Disabled – can disable class or test. Appear in report but not run. (unlike @Ignore where don’t appear in report at all)
  • @DisplayName so can print clearer name than test name
  • @Tag – replaces @Category – to grou/filter tests
  • assertAll() – new assertion – facilitates grouping of assertions

Said backward compatible. But not all runners/rules are in Jupiter. So would have to use Vintage test engine to use those or port. Jupiter has different packages for annotations/assertions so can mix within class. So if using Jupiter engine, still can use “old” asserts until change imports.

Nice ending presentation. I’m really excited about JUnit 5!

JHipster 4: Angular and Spring Boot – live blogging from spring days

JHipster 4: Bringing Together Angular and Spring Boot
Speaker: Yakov Fain
See list of all blog posts from conference

Random facts/quotes from pre JHipster demo

  • Can often judge a framework by how much/little need to do to get started.
  • Write in typescript and gets turned into JavaScript.
  • Pulled files from nodejs.org – which is like Maven Central for JavaScript.
  • ng serve – bundles up js files
  • showed npm scripts to build/deploy

JHipster

  • code generator
  • Based on Yeomen – another code generator