नहीं है, मैं grails 2.1.x को अपग्रेड करने की प्रक्रिया में हूं, और मेरे कुछ पुराने स्टाइल परीक्षणों को फिर से करने की आवश्यकता है।इंटेलिज आइडिया में 2.1.3 परीक्षण चल रहे हैं: स्पॉक परीक्षण में विचित्र त्रुटि: डोमेन क्लास [वर्ग x.y.Z] जोड़ नहीं सकते हैं। यह डोमेन
मैंने अभी अपने स्पॉक स्पेक में एक नया परीक्षण जोड़ा है, और इस परीक्षण के लिए मुझे एक अतिरिक्त डोमेन क्लास का नकल करने की आवश्यकता है।
इस से पहले, मैं था:
@Mock([Event, EventType])
अब मेरे पास है:
@Mock([Event, EventType, Notification])
Notification.groovy (grails-ऐप के तहत एक ही सटीक पैकेज और घटना और EventType से शारीरिक निर्देशिका में है/डोमेन) तो यह निश्चित रूप से एक grails डोमेन वर्ग है।
जब मैं अपने परीक्षण मैं निम्नलिखित स्टैक ट्रेस मिल चलाने का प्रयास:
org.codehaus.groovy.grails.exceptions.GrailsConfigurationException: Cannot add Domain class [class x.y.Notification]. It is not a Domain!
at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.addArtefact(DefaultGrailsApplication.java:911)
at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.addArtefact(DefaultGrailsApplication.java:615)
at grails.test.mixin.domain.DomainClassUnitTestMixin.mockDomain(DomainClassUnitTestMixin.groovy:131)
at grails.test.mixin.domain.DomainClassUnitTestMixin.mockDomain(DomainClassUnitTestMixin.groovy:128)
जब मैं खरगोश छेद के माध्यम से जाने के लिए और निष्पादन डिबगिंग शुरू, मैं DomainClassArtefactHandler (लाइन 87) के इस भाग को मिलता है:
// make sure the identify and version field exist
testClass.getDeclaredField(GrailsDomainClassProperty.IDENTITY);
testClass.getDeclaredField(GrailsDomainClassProperty.VERSION);
इस एक अपवाद के साथ चल रही है, क्योंकि मुझे लगता है कि आईडी फ़ील्ड मौजूद नहीं है
तो कुछ गलत हो रहा है, GORM क्षेत्रों नहीं विज्ञापन कर रहे हैं इसे निष्पादित करने से पहले समर्पित करें।
क्या किसी के पास मुझे क्या करना है इसका सुझाव है? क्या मुझे अपनी डोमेन क्लास को @Entity के रूप में चिह्नित करने की आवश्यकता है (यह वास्तव में मेरा परीक्षण पास बनाता है)?
मुझे पूरा यकीन है कि मेरे यूनिट परीक्षण पास होने के लिए अनिवार्य नहीं होना चाहिए।
कोई सलाह?
अद्यतन: वास्तव में, मैं सिर्फ पता चला है कि इस मुद्दे को केवल उठता है जब मैं अपने आईडीई के अंदर इकाई परीक्षण चलाएँ: 12.1
मुद्दे बनाया IntelliJ विचार, परीक्षण ऐप को यहाँ के साथ:
http://jira.grails.org/browse/GRAILS-9989
http://youtrack.jetbrains.com/issue/IDEA-105087
जब मैं दोनों डोमेन की कक्षाओं में स्थिर मानचित्रण ब्लॉकों को हटाने, परीक्षण पा sses!
क्या यह एकीकरण परीक्षण फ़ोल्डर या इकाई परीक्षण फ़ोल्डर में है? इसके अलावा यदि आपके पास विनिर्देशन का विस्तार करने और @TestFor का उपयोग करने वाले किसी भी स्पॉक एकीकरण परीक्षण हैं तो आपको वास्तव में अजीब त्रुटियां मिलेंगी जिन्हें आपको अभी भी इंटीग्रेशन टेस्ट के लिए इंटीग्रेशनपेक का उपयोग करने की आवश्यकता है। –
हाय जेफ, यह एक यूनिट परीक्षण है। एकीकरण फ़ोल्डर में अभी तक कोई चश्मा नहीं है, केवल जूनिट स्टाइल परीक्षण। हालांकि ब्याज लेने के लिए धन्यवाद, मैं इसे ध्यान में रखूंगा। – loteq
उस डोमेन ऑब्जेक्ट के लिए एक स्थिर मैपिंग ब्लॉक है? –