मुझे माफी मांगना शुरू करना है यदि मेरे द्वारा उपयोग की जाने वाली शर्तें गलत हैं। मैं केवल ऑटोमेशन कार्यों (ग्रैडल) के लिए ग्रोवी/जावा का उपयोग करता हूं, और मेरे पास उत्पादन ग्रेड सॉफ़्टवेयर देने के वर्षों का अनुभव नहीं है।स्पॉक - अपेक्षित मान वापस लौटने की उम्मीद नहीं है
तो, मेरे पास जो चुनौती है वह निम्नानुसार है: मेरे पास एक ऐसा स्पेस है जो रिटर्न स्ट्रिंग का परीक्षण करने की कोशिश कर रहा है (लगभग this के समान)।
def "pretty print returns correct string"() {
setup:
X509Certificate stubCert = Stub()
stubCert.getSubjectDN().toString() >> "Test"
when:
def output = X509CertificateUtils.prettyPrint(stubCert)
then:
output == "Subject: Test"
}
हालांकि, अंतर यह है कि मेरी विधि बाधा एक प्रधान ऑब्जेक्ट है, और उसके उस वस्तु के toString() है कि मैं वास्तव में ठूंठ करना चाहते हैं। मैंने सोचा कि मैं ठीक से ऊपर कर रहा था, लेकिन यह परिणाम मुझे उम्मीद नहीं देता है।
यहां मेरी सहायक कक्षा है।
import java.security.cert.X509Certificate
class X509CertificateUtils {
static def prettyPrint(X509Certificate x509Certificate) {
return "Subject: ${x509Certificate.getSubjectDN()}"
}
}
मैं इस परीक्षण मैं निम्नलिखित त्रुटि मिलती है चलाते हैं:
output == "Subject: Test"
| |
| false
| 38 differences (20% similarity)
| Subject: (Mock for)t(ype 'Principal' named 'dummy')
| Subject: (Tes------)t(-----------------------------)
Subject: Mock for type 'Principal' named 'dummy'
कोई मदद कृतज्ञता प्राप्त की जाएगी।
इसके लिए धन्यवाद। यह मेरी समस्या हल हो गई। मैं इस समाधान के करीब कुछ बार मिला। ब्याज से क्या आप जानते हैं कि विधियों को क्यों चुनौती नहीं मिली? – Sion
चेनिंग स्टब्स को "कोड गंध" माना जाता है, आप इस संबंधित प्रश्न (और पहले उत्तर) में इसके बारे में अधिक पढ़ सकते हैं: http://stackoverflow.com/questions/7926891/mock-or-stub-for-chained-call । इसके अलावा, स्पॉक में स्टब्स के वर्तमान कार्यान्वयन को स्टब चेनिंग का समर्थन करने के लिए प्रोग्राम नहीं किया गया है, 'a.method() >> b' मूल रूप से एक वाक्य रचनात्मक चीनी है जो "विधि के लिए" ऑब्जेक्ट पर एक स्टब पंजीकृत करें "जैसे कुछ का अनुवाद करता है "लौटने के लिए" बी "'। आपके मामले में स्पॉक पहले 'stubCert.getSubjectDN() 'कहता है, तो परिणाम को एक स्टब होने की उम्मीद है, और इस लौटे ऑब्जेक्ट पर" toString "को पंजीकृत करने का प्रयास करता है। – bezmax
उत्तर देने के लिए समय लेने के लिए धन्यवाद। बहुत सराहना की। – Sion