मैं एक सेवा के लिए यूनिट परीक्षण लिखने की कोशिश कर रहा हूं जो कुछ सेटिंग्स करने के लिए grailsApplication.config का उपयोग करता है। ऐसा लगता है कि मेरे यूनिट परीक्षणों में सेवा उदाहरण कॉन्फ़िगरेशन फ़ाइल (शून्य सूचक) तक इसकी सेटिंग के लिए नहीं पहुंच सका, जबकि जब मैं "रन-एप" चलाता हूं तो उस सेटिंग तक पहुंच सकता है। मैं अपने यूनिट परीक्षणों में grails आवेदन सेवा का उपयोग करने के लिए सेवा को कैसे कॉन्फ़िगर कर सकता हूं।grails Grails इकाई परीक्षण में आवेदन पहुंच
class MapCloudMediaServerControllerTests {
def grailsApplication
@Before
public void setUp(){
grailsApplication.config=
'''
video{
location="C:\\tmp\\" // or shared filesystem drive for a cluster
yamdi{
path="C:\\FFmpeg\\ffmpeg-20121125-git-26c531c-win64-static\\bin\\yamdi"
}
ffmpeg {
fileExtension = "flv" // use flv or mp4
conversionArgs = "-b 600k -r 24 -ar 22050 -ab 96k"
path="C:\\FFmpeg\\ffmpeg-20121125-git-26c531c-win64-static\\bin\\ffmpeg"
makethumb = "-an -ss 00:00:03 -an -r 2 -vframes 1 -y -f mjpeg"
}
ffprobe {
path="C:\\FFmpeg\\ffmpeg-20121125-git-26c531c-win64-static\\bin\\ffprobe"
params=""
}
flowplayer {
version = "3.1.2"
}
swfobject {
version = ""
qtfaststart {
path= "C:\\FFmpeg\\ffmpeg-20121125-git-26c531c-win64-static\\bin\\qtfaststart"
}
} '''
}
@Test
void testMpegtoFlvConvertor() {
log.info "In test Mpg to Flv Convertor function!"
def controller=new MapCloudMediaServerController()
assert controller!=null
controller.videoService=new VideoService()
assert controller.videoService!=null
log.info "Is the video service null? ${controller.videoService==null}"
controller.videoService.grailsApplication=grailsApplication
log.info "Is grailsApplication null? ${controller.videoService.grailsApplication==null}"
//Very important part for simulating the HTTP request
controller.metaClass.request = new MockMultipartHttpServletRequest()
controller.request.contentType="video/mpg"
controller.request.content= new File("..\\MapCloudMediaServer\\web-app\\videoclips\\sample3.mpg").getBytes()
controller.mpegtoFlvConvertor()
byte[] videoOut=IOUtils.toByteArray(controller.response.getOutputStream())
def outputFile=new File("..\\MapCloudMediaServer\\web-app\\videoclips\\testsample3.flv")
outputFile.append(videoOut)
}
}
आप TestFor या इस परीक्षण में किसी भी टिप्पणी है? Grails redeclare आवेदन नहीं है, नकली एनोटेशन के साथ आता है। 'GrailsUnitTestMixin' देखें। –
हाँ यह @TestFor एनोटेशन है। मैंने "डीफ grails आवेदन" हटा दिया लेकिन grails आवेदन संदेश पर संदेश शून्य मिला। बीटीडब्ल्यू मैं Grail 2.1 का उपयोग कर रहा हूँ। – Reza
क्या आप स्टैकट्रैक पोस्ट कर सकते हैं? साथ ही, मुझे यकीन नहीं है कि आप इस तरह कॉन्फ़िगरेशन घोषित कर सकते हैं, क्योंकि यह ConfigObject का एक उदाहरण है। मैं एक परीक्षण करूँगा और देख सकता हूं कि आपको ConfigSlurper का उपयोग करने की आवश्यकता होगी या नहीं। –