简体   繁体   中英

Running unit tests of JavaScript code from XUL - what and how

I am writing an XUL application. It is not a Firefox extension but a standalone app to be used through XULrunner. My intention is to adopt TDD in my development process and I am looking at RhinoUnit as my unit testing framework. I will try to use it anyway but there is not much documentation about testing XUL applications. Some people talk about usingUxU - but only for Firefox addons - and Mochitest - if you want to test Mozilla only.

My question is: has someone written some XUL application with unit tests? What tool did you use and, if it is someone I have mentioned, how did you use it?

You could try to have a look at Mozmill . It is an addon that can be used for testing all Gecko based applications.
You can use it to test UI interface of your application.
The documentation is quite ok and if you have any question you can try the dedicated mailing list.

I am successfully using Mochitest for an add-on, it should be usable in a XULRunner application in mostly the same way. You need the files under http://hg.mozilla.org/mozilla-central/file/tip/testing/mochitest/ , use the "zip" link to download the directory contents. Put these files somewhere in your project and map this directory to chrome://mochitest/content/ . Put your tests into the chrome/ subdirectory, there is extensive documentation on writing these tests. You could use runtests.py with --chrome command line options to start the tests but I doubt that this will be possible without tweaking the script. Opening chrome://mochitest/content/harness.xul in your application (as a XUL dialog or by specifying -chrome chrome://mochitest/content/harness.xul on the command line) should do as well.

Edit : I was wrong, the "zip" link downloads the entire repository. I don't know of any way to get a particular directory from the repository then, fastest solution should be running hg clone http://hg.mozilla.org/mozilla-central/ from the command line to get a copy of the entire repository.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM