Unit Testing World Wind
From World Wind Wiki
Revision as of 08:35, 3 April 2011 (edit) Mkpl (Talk | contribs) m (Reverted edits by 2.94.77.130 (Talk); changed back to last version by NowakPL) ← Previous diff |
Revision as of 09:01, 31 December 2011 (edit) (undo) 63.133.203.37 (Talk) Next diff → |
||
Line 7: | Line 7: | ||
*Pros | *Pros | ||
** Writing tests makes you think about what your code does and is it as simple as possible | ** Writing tests makes you think about what your code does and is it as simple as possible | ||
- | ** Verifiable testing, CruiseControl.Net, Nant and many other tools can build and run the tests and give quick feedback about things that dont pass. | + | ** Verifiable testing, CruiseControl.Net, Nant and [http://swissreplicawatches.me/ '''Swiss replica watches'''] many other tools can build and run the tests and give quick feedback about things that dont pass. |
**Regessions are (hopefully) spotted quickly | **Regessions are (hopefully) spotted quickly | ||
**Produces better code. | **Produces better code. |
Revision as of 09:01, 31 December 2011
Unit Testing World Wind
I would like to float a proposal to start adding Unit Testing for any new features we add to World Wind. This isnt user or tester testing, unit tests is code and classes you add to a project to test that the code you write behaves as expected and can be tested and verified by automated tools. So if you check in changes a periodic build can build *and* test the code.
The pedantic form of writing tests is to write it *before* you write the actually code. I know it sounds odd, but think about it, you *have* thought through your classes and written some stuff down, you *do* know where you are gonna start, you *aren't* making it up as you go along are you? :) Writing tests before coding makes you stay honest with yourself.
- Pros
- Writing tests makes you think about what your code does and is it as simple as possible
- Verifiable testing, CruiseControl.Net, Nant and Swiss replica watches many other tools can build and run the tests and give quick feedback about things that dont pass.
- Regessions are (hopefully) spotted quickly
- Produces better code.
- Cons
- Percieved increase in time it takes to write code. (Time spent answering questions and testing is not visible to developers)
- Extra dependancy for the build.
- Testing GUI is hard.
- Separation of concerns is hard to start doing (Large event methods - see WorldWindow.cs - _OnMouseDown)
- Tools
- Unit Testing
- TestDriven.NET
- MB.Unit
- Automated Builds
- Nant
- Cruise Control.Net
- Unit Testing