Я думаю, что ответ на
assertNumberOfAssertionsInThisTest(3); // <-- How do I do this?
- это: вы делаете , а не делаете это. Этот тест близок к бесполезному.
Если есть только 3 поля, вы можете увидеть своими глазами, что вы проверяете эти три поля. Вы, вероятно, думаете о 15 полях в этом классе, но тогда:
assertEquals(model.a, externalModel.getA());
assertEquals(model.b, externalModel.getSomethingNamedDifferently());
assertEquals(model.c, externalModel.getC().toString());
assertEquals(model.c, externalModel.getC().toString());
assertEquals(model.d, externalModel.getD().toString());
...
assertEquals (model.o, externalModel.getO (). toString ());
assertNumberOfAssertionsInThisTest(15);
не не поможет вам. Угадайте, что: когда я собрал свой фальшивый пример, я пропустил свойство 14 (model.n), но вместо этого у меня была ошибка копирования / вставки, и я дважды проверил model.c, что привело к общему количеству 15.
Поэтому я согласен с пользователем Филом, просто предлагая еще один подход, такой как:
- гарантирует, что классы бинов имеют разумные
equals()
(и, возможно, hashCode()
методы). Либо с помощью Lombok, либо с помощью базового класса бинов, который использует EqualsBuilder (мы на самом деле делаем это позже в наших проектах)
- затем используйте тестовый код или используйте фиктивный бин и просто сравните, если этот фальшивый бин равен с бином, который ваш производственный код создал из (возможно, фальсифицированного) объекта внешней модели.