To verify signal emission in a test case use QSignalSpy [1] (it's pretty well documented).
I'm on the run now but I'll follow up with a specific example and ideas about the balance cache later. Regards, Cristian [1] http://doc.qt.io/qt-5/QSignalSpy.html 2015-02-17 19:24 GMT+02:00 victor <pedretti...@hotmail.com>: > Thanks for your answer Cristian. I understand what you mean, but I have no > idea about how to check that those signals are emitted since I have never > worked with this mechanism. Could you please show me a specific example? > > Your answer refers to m_valueChangedSet and m_balanceChangedSet. Any ideas > about the faults involving "m_balanceCache"? > >> Date: Tue, 17 Feb 2015 16:23:42 +0200 >> Subject: Re: [Kmymoney-devel] Improving the test suite for MyMoneyFile >> From: onet.crist...@gmail.com >> To: pedretti...@hotmail.com >> CC: kmymoney-devel@kde.org > >> >> Hi, >> >> Since those two members are used to implement the emit of the >> 'balanceChanged()' and 'valueChanged()' signals after committing >> changes you could write a test case that asserts that those signals >> are emitted properly. >> >> For example: >> After adding a transaction 'balanceChanged()' should be emitted. >> After adding a price 'valueChanged()' should be emitted. >> >> Regards, >> Cristian >> >> 2015-02-17 16:13 GMT+02:00 victor <pedretti...@hotmail.com>: >> > Hello, >> > >> > I am trying to improve some of the test files of KMyMoney for my >> > research >> > studies. This is a really complex task when you are not involved in >> > programming this application, so I need your help to achieve it. >> > >> > All the same, I'm only focusing on some specific parts. What I'm doing >> > is to >> > introduce several concrete faults into the code and then observe if the >> > fault is detected by the test suite (this would be the expected of an >> > adequate test suite, but we all now that this is quite difficult >> > sometimes). >> > In this sense, I have been doing this in "mymoneyfile.cpp" and testing >> > it >> > with its corresponding file test "mymoneyfiletest.cpp". The faults >> > introduced are faults which are common when programming because we >> > sometimes >> > mix the name of variables of the same type, or do not call the >> > appropriate >> > method because of "copy and paste",... >> > >> > Here I show two of these faults that the test suite is not able to >> > detect >> > (the result is the same in the original program and with the inserted >> > fault): >> > >> > 1) The first is in the method "void >> > MyMoneyFile::commitTransaction(void)", >> > where I change: >> > >> > d->m_balanceChangedSet.remove((*it).id()); >> > >> > by: >> > >> > d->m_valueChangedSet.remove((*it).id()); >> > >> > Exactly the same happens in the method "void >> > MyMoneyFile::rollbackTransaction(void)" if, for instance, I change >> > "d->m_valueChangedSet.clear();" by "d->m_balanceChangedSet.clear();". >> > These >> > changes seem to be meaningful changes, but they are not detected by the >> > test >> > suite at the moment. >> > >> > 2) The other situation that I want to report is in method "void >> > notify(void)" belonging to "MyMoneyFile::Private". If I change, >> > >> > m_balanceCache.clear(i.first, i.second); >> > >> > by: >> > >> > m_balanceCache.clear(i.first); >> > >> > or: >> > >> > m_balanceCache.clear(); >> > >> > How could I detect that I are not calling the method "clear" in a >> > correct >> > way? >> > >> > I am aware that this is quite specific and may be difficult to create >> > test >> > cases for these situations, but I think that this is a very good chance >> > to >> > improve the test suite of MyMoneyFile (a very important module in the >> > application). >> > >> > Does somebody know how to reveal the aforementioned faults modifying >> > existing test cases or designing a new one? >> > >> > Thanks in advance. >> > >> > _______________________________________________ >> > KMyMoney-devel mailing list >> > KMyMoney-devel@kde.org >> > https://mail.kde.org/mailman/listinfo/kmymoney-devel >> > _______________________________________________ KMyMoney-devel mailing list KMyMoney-devel@kde.org https://mail.kde.org/mailman/listinfo/kmymoney-devel