QUnit Vs. Jasmine and TDD Vs. BDD
Asked Answered
L

2

28

I've been looking at two libraries for doing unit tests on the front-end.

  • QUnit - http://qunitjs.com/

  • Jasmine - http://jasmine.github.io/

    1. Jasmine is clearly more BDD focused than QUnit although I could see doing BDD with QUnit by describing the tests in a behavior-oriented way. Both of them are able to run assertions on units of code so I think they're both unit tests. Is BDD mutually exclusive from TDD or is it all in how you write it?

    2. Is unit testing necessary if you're doing behavior testing? Seems like if you cover all user stories, you don't really need to know the details of the testable units.

    3. Are there any other testing frameworks you like? Are there other tests besides unit tests that are good for devs to do on the front-end?

Latonialatoniah answered 9/8, 2013 at 20:52 Comment(3)
BDD is essentially a friendly way of describing TDD methodologies.Henigman
I appreciate how your first and second questions turn what would otherwise be a subjective Q&A into a more objective one.Eam
pivotal.github.io/jasmine is page not foundParticle
G
20
  1. BDD and TDD are not mutually exclusive. See Liz Keogh's post

  2. Behavior testing should be understandable by business stakeholders. Unit testing is typically intended to be understood by technical team members (developers, testers etc.). For examples of how to make unit tests more readable you should look at the GOOS book (although the examples are Java not Javascript).

    Also, if you try to cover all test paths using BDD, your business people will get bored and stop caring.

  3. Have a look at Cucumber-JS (a port of Cucumber).

Gannes answered 12/8, 2013 at 16:45 Comment(2)
I'd like to see a study that shows the percentage of business stakeholders that actually read the BDD tests. I bet it's in the single digits.Kutz
You may be right, but they certainly won't read them if they can't understand them. Have a look at the online BDD tests for the UK government's redevelopment of their public website at relishapp.com/GDS/whitehall/docsGannes
H
-3

If you are looking at writing tests that involve DOM interactions I'd have a look at pageboy.js. This is a new project that provides a Domain Specific Language (DSL) for Javascript DOM interactions (a bit like Capybara which is used within Cucumber in Ruby), which is intended to make test code more readable.

There is more on the background of this DSL here.

Herson answered 14/1, 2014 at 8:36 Comment(2)
A disclaimer (on your involvement in the project) would be nice.Hereto
Last commit 3 years agoNewbill

© 2022 - 2024 — McMap. All rights reserved.