This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
unit_tests [2016/09/08 17:44] mhatz [Example] |
unit_tests [2020/10/11 09:50] (current) |
||
---|---|---|---|
Line 50: | Line 50: | ||
* MyClass(): the constructor must initialize the object, so it must initialize the members m_count and m_text. But, to which values? This have to be specified somewhere otherwise the objects could be inconsistent. | * MyClass(): the constructor must initialize the object, so it must initialize the members m_count and m_text. But, to which values? This have to be specified somewhere otherwise the objects could be inconsistent. | ||
- | * For our example, we will pretend that m_count must be initialize to 0 and m_text to "default text"; | + | * For our example, we will pretend that m_count must be initialized to 0 and m_text to "Default text"; |
- | * increment(): this must add just 1 to m_count. But m_count is an int, meaning it can be negative. What if we increment m_count until 2147483647 (assuming int is on 32 bits) and the increment again? Does the increment method will just put m_count to the minimum negative value? Or will it refuse to increment again, leaving m_count to 2147483647? | + | * increment(): this must add just 1 to m_count. But m_count is an int, meaning it can be negative. What if we increment m_count until 2147483647 (assuming int is on 32 bits) and then increment again? Does the increment method will just put m_count to the minimum negative value (-2147483648)? Or will it refuse to increment again, leaving m_count to 2147483647? |
* For our example, we choose the second option: never go to negative value. | * For our example, we choose the second option: never go to negative value. | ||
- | * setText(const QString& text): now you get it, we will assume this method accept any strings except empty ones. | + | * setText(const QString& text): now you get it, we will assume this method accept any strings except empty ones (it will do nothing in this case). |
* count() and text() methods must always return the current value. | * count() and text() methods must always return the current value. | ||
Line 88: | Line 88: | ||
</code> | </code> | ||
- | The PropsTester class is a facility to check properties against their default values. While it is not mandatory, it is highly recommended to ease the test of class members integrity. | + | The PropsTester class is a convenience to check properties against their default values. While it is not mandatory, it is highly recommended to ease the test of class members integrity. |
The implementation of TestMyClass will look like this: | The implementation of TestMyClass will look like this: | ||
Line 129: | Line 129: | ||
MyClass myClass; | MyClass myClass; | ||
| | ||
- | for(int i = 1; i <= 2147483647; ++i) | + | for(int i = 0; i < 2147483647; ++i) |
{ | { | ||
myClass.increment(); | myClass.increment(); |