Can JSTestDriver be used to test DOM behaviors and interactions?
I see I can write tests to exercise pure JS but how do I go about testing against HTML or DOM?
Can I deliver with each test HTML for browsers to render and the tests to run against?
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.Sign up to join this community
Try using the Html Doc feature...
You should be able to do stuff like:
/*:DOC += <div id="page"> <div id="foo">yyy</div> <div class="bar"> <p>xxxx</p> </div> <div>hilo!</div> </div> */
...inside your tests, and JSTestDriver will inject that stuff into the DOM. Of course, if you're talking about injecting entire complete pages into your test, this might not be that great an option. Having said that, testing your code against small pieces of DOM like this is probably going to give you better isolation.
I tend to use selenium. It lets you drive a browser and interact with the page. It can be quite useful for this kind of testing.
It does have some limits, You can do a lot of does element exist, if so click it. But its not so easy to check if it is visible, and not off screen or buried or the like