*If anyone is interested in starting a Vala Unit Test project under the umbrella of the elementary community, I'm sure we could get quite a bit of traction from the Vala community at large and I would love to help out. - Dane Henson* * * Not only that, but I imagine it would garner quite a lot of professional developer attention for elementary, since professional devs seem dramatically more exposed to (and interested in) formal testing than hobbyist developers.
*I apologize for spamming the mailing list. - Dane Henson* Please don't apologize--from the sounds of it, there is quite a bit of consensus that this is a subject that needs to be discussed. And I for one have found each of your messages profitable. *Unit testing is boring to write so if we just said "Everybody. Write unit tests. All Projects. Now." it would really take on. On companies and when developers are paid to work, they can write and put tests everywhere, but it's harder for us. - David Gomes* * * David, I used to think that as well; however, once you learn to write tests correctly (I'm starting that process myself) it becomes more exciting. As Dane mentions later in the thread, when you build the bucket around the water (write tests for existing code), it is certainly drudgery; however, when you write tests *before* you implement the functionality, you 1. wind up with better code (because code must be written in neat modules to provide your tests access to the inputs/outputs they need) 2. get the excitement of writing code and watching your tests pass/fail (and as you learn to write better tests, you get detailed information about exactly what caused the failure) 3. can change your code fearlessly, knowing that if anything breaks, you will be notified immediately The whole process becomes at least a little more exciting, especially if you've experienced a huge untested code base and the fear that comes with having to make a change or implement a feature lest the whole thing come tumbling down on you. *While if we (developers) use the first approach, which is called TDD is much better. We write the test first so we define how our app should behave and how our code is structured already (so all the thinking of the code structure you do it in the tests) which is really great. - Goncalo* * * TDD = Test Driven Development (for the uninitiated). I elaborated on this process to some extent in my previous paragraph. We can also do BDD , if there's no framework for this we can probably create something, for more infos you can check cucumber for Ruby. *Bdd let's you write the tests in PLAIN english, so who does the mockups could write the tests as well. that would be great. - Goncalo* * * BDD = Behavior Driven Development. It's either the same thing or very closely related to ATDD (Acceptance Test Driven Development). In either case, the general idea is that you specify what the entire system *must do* (system requirements/acceptance criteria) and then you write tests to verify each requirement. This sort of test might look like: "WHEN the bold button is pressed AND the string 'abcd' is typed, EXPECT the text view to contain the string 'abcd' in bold" Then, for each line, you write a function that implements either the setup (the WHEN/AND portion) or the evaluation (the EXPECT portion) and then the framework puts the pieces together and executes the test. The code for the test (in pseudocode) might look like this: func pressBoldButton () { theApp.boldButton.setPressed (true) } func type(string input) { theApp.InsertAtCursor (input) } func verifyContents () { start := 0 end := 3 contents := theApp.GetFormattedSubStr (start, end) contentsAreBold := contents.isBold() letters := contents.getPlainTextString() Testing.Expect (contentsAreBold); Testing.Expect (letters == "abcd") } On Thu, Apr 4, 2013 at 9:11 AM, Dane Henson <d...@elementaryos.org> wrote: > Here is another practical post I found interesting regarding setting up > Unit Tests in Vala with Cmake: > > > http://blog.remysaissy.com/2012/11/setting-up-unit-tests-in-vala-project.html > > I apologize for spamming the mailing list. > > > On Thu, Apr 4, 2013 at 8:56 AM, Sergey "Shnatsel" Davidoff < > ser...@elementaryos.org> wrote: > >> I strongly recommend anyone interested in automated testing to read >> through Martin Pitt's Ubuntu Dev Week session on the topic. He's the one >> responsible for most of unit testing in Ubuntu (he's also the author of >> Apport which we already use). His IRC nick is "pitti" and the session logs >> can be found at >> http://irclogs.ubuntu.com/2013/01/31/%23ubuntu-classroom.html >> >> >> -- >> Sergey "Shnatsel" Davidoff >> OS architect @ elementary >> > > > -- > Mailing list: https://launchpad.net/~elementary-dev-community > Post to : elementary-dev-community@lists.launchpad.net > Unsubscribe : https://launchpad.net/~elementary-dev-community > More help : https://help.launchpad.net/ListHelp > >
-- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp