Правильного наблюдения нет, Вадим.
С точки зрения Аксона, есть только одно место, где вам нужно добавить функцию equals()
, которая является Агрегатным членом, который содержится в списке на Агрегате (Root).
FixtureConfiguration
модуля axon-test
будет сопоставлять Агрегат до обработки команды и после нее, чтобы гарантировать, что состояние в обработчике команд не было изменено. Аксон использует глубокое сравнение полей, если не предоставлен метод equals()
. Список объектов будет неправильно соответствовать объектам, так как ссылка на объект будет использоваться, если не указано equals()
. Таким образом, требуется, чтобы ваши «Совокупные участники», которые вы помещаете в список / набор / карту, имели реализацию функции equals()
.
Обратите внимание, что это на самом деле не идеально. Сущности не должны быть взаимозаменяемыми, так как они не определяются в основном своими атрибутами (такими как объекты-значения и сообщения), а скорее их идентичностью и потоком непрерывности. Это известное предупреждение, с которым модуль axon-test
планирует справиться за один день.
Итак, чтобы ответить на ваш вопрос вкратце:
Для тестирования наличие обоих более чем справедливо, но в реальной системе это не нужно.