Я пытаюсь проверить переопределение равных в объекте домена, чтобы гарантировать, что «содержит» работает. Механическая тестовая механика бросает вызов мне, несмотря на документацию и ошибки, говорящие, что я должен быть в состоянии издеваться над addTo.Grails Unit test и mocking addTo
Мой тест:
@TestFor(Member)
@Mock([Member])
class MemberCategoryTests {
void testContains() {
MemberCategory schoolCat = new MemberCategory(name: "SCHOOL")
MemberCategory membersCat = new MemberCategory(name: "Members")
Member member = new Member(membershipNumber: "333333",
surname: "Tester",
forenames: "Jim",
preferredEmail: "[email protected]")
member.addToMemberCategories(schoolCat)
member.addToMemberCategories(membersCat)
MemberCategoryRedback memberCategoryRedback = new MemberCategoryRedback(name: "SCHOOL")
assert member.memberCategories.contains(memberCategoryRedback)
}
}
Ошибка:
No signature of method: au.com.interlated.civiLink.Member.addToMemberCategories() is applicable for argument types: (au.com.interlated.civiLink.MemberCategory)
объект домена не является специальным. MemberCategory реализует равные.
Этот документ говорит @Mock ([ууу]) следует сделать трюк: Naleid upgrading to grails 2 testing как это делает unit testing addto
Да - дополнительный @TestFor удаляет ошибку из вопроса. Я не могу подтвердить, что сохранение требуется, поскольку отчеты об испытаниях, содержащие contains(), не работают в любом случае. благодаря – Interlated