March 2018
Intermediate to advanced
208 pages
4h 52m
English
| | class OxygenTankTest { |
| | |
| | @Test |
| | void testNewTankIsEmpty() { |
| | OxygenTank tank = OxygenTank.withCapacity(100); |
| | Assertions.assertEquals(0, tank.getStatus()); |
| | } |
| | |
| | @Test |
| | void testFilling() { |
| | OxygenTank tank = OxygenTank.withCapacity(100); |
| | |
| | tank.fill(5.8); |
| | tank.fill(5.6); |
| | |
| » | Assertions.assertEquals(0.114, tank.getStatus()); |
| | } |
| | } |
Here you can see tests that use floating-point numbers instead of integer values. From the source code alone, the tests seem good. The problem is that they’re going to fail, even if the code that’s tested is functionally correct.
Can you think of why? Here’s a tip: On our machine, the second test fails with the message expected: <0.114> but was <0.11399999999999999> ...