मैं प्रलेखन के अनुसार एक Grails सेवा के लिए एक इकाई परीक्षण के भीतर एक डोमेन कक्षा के कुछ सरल मजाक करने का प्रयास कर रहा हूं, लेकिन ऐसा लगता है कि यह हमेशा के लिए उन प्रश्नों में काम नहीं कर रहा है वापस शून्य क्या मुझे कुछ आसान याद आ रही है? यहाँ मेरी कोड के प्रासंगिक हिस्सा है, मैं स्पष्टता के लिए वर्ग और परीक्षण विधि के नाम बदल दिया:मॉकडोमेन कॉल फ़िक्स्चर डोमेन डेटा प्रदान नहीं कर रहा है, मुझे क्या याद आ रहा है? Grails 2.0.1
@TestFor(MyService)
@TestMixin(DomainClassUnitTestMixin)
class MyServiceTests {
void testMyThing() {
defineBeans {anotherService(AnotherService)} //My service under test uses another service, unlikely relevant?
MyUser.metaClass.isDirty = { //workaround for mockDomain not adding isDirty method.
println("dirty check called");
}
mockDomain(MyUser, [
[username: "[email protected]", accountType: UserType.STANDARD, id: 1L],
[username: "[email protected]", accountType: UserType.STANDARD, id:3L],
[username: "[email protected]", accountType: UserType.BUSINESS, id:2L]
])
MyUser user1 = MyUser.get(1);
System.out.println("user 1: ${user1}"); // output is 'user 1: null'
MyUser user1byName = MyUser.findByUsername("[email protected]");
System.out.println("user 1 by name: ${user1byName}"); // output is 'user 1 by name: null'
... the actual testing stuff which would love to have non null MyUser objects ...
}
}
क्या आपने @Mock (MyUser) जोड़ने का प्रयास किया है? –
@ टॉमस हाँ मैंने किया, कोई प्रभाव नहीं। दस्तावेज को देखते हुए इसे mockDomain() – Peter