मैं सोच रहा हूं कि इस के आसपास कैसे जाना है। मैं निहिरनेट और धाराप्रवाह का उपयोग कर रहा हूँ।इकाई परीक्षण और निषेध?
मैं इस
public class User
{
public virtual int UserId {get; private set;}
}
की तरह एक डोमेन वर्ग इस जब nhibernate कर के रूप में यह स्थापित करने और आईडी के रूप में यह स्वचालित रूप से जेनरेट है से लोगों से बंद हो जाता सम्मेलन हो रहा है है।
अब समस्या तब आती है जब मैं इकाई परीक्षण करता हूं।
मेरे पास एक रेपो में मेरा निबर्ननेट कोड है जो मैं नकल करता हूं इसलिए मैं केवल अपनी सेवा परत का परीक्षण कर रहा हूं। समस्या तब होती है जब ऐसा होता है।
User user = repo.GetUser(email);
यह उपयोगकर्ता ऑब्जेक्ट को वापस करना चाहिए।
तो मैं moq उपयोग करने के लिए इस
repo.Setup(x => x.GetUser(It.IsAny<string>())).Return(/* UserObject here */)
क्या करना चाहते हैं अब यहाँ समस्या
मुझे लगता है कि उपयोगकर्ता वस्तु बनाने के लिए और वापसी हिस्से में डाल दिया की जरूरत है।
तो मैं जैसे
User user = new User()
{
UserId = 10,
}
कुछ करना होगा लेकिन यह वह जगह है जहाँ समस्या है मैं ईद स्थापित करने के लिए है क्योंकि मैं वास्तव में इसे बाद में उपयोग करें (कुछ संग्रह के बारे में कुछ LINQ करने के लिए के रूप में सेवा परत में की जरूरत है यह मेरे डीबी को मार नहीं रहा है, इसलिए यह मेरे रेपो में नहीं होना चाहिए) इसलिए मुझे इसे सेट करने की ज़रूरत है, लेकिन मैं इसे सेट नहीं कर सकता क्योंकि यह एक निजी सेट है।
तो मुझे क्या करना चाहिए? क्या मुझे सिर्फ निजी को हटा देना चाहिए या क्या कोई और तरीका है?
धन्यवाद यह सिर्फ काम करता है पूरी तरह से। मुझे संख्या 2 के लक्षण हो सकते हैं। यह सिर्फ इतनी सारी चीजों का मज़ाक उड़ाता है। मैं इसे केवल इतना ही रखने की कोशिश कर रहा हूं कि मुझे परीक्षण करने की क्या ज़रूरत है। उदाहरण के लिए, मैं उपयोगकर्ता के लिए उपयोगकर्ता नाम का नकल नहीं करता क्योंकि इसका उपयोग विधि में नहीं किया जाता है। मैं autofixture moq का प्रयास करना चाहता हूं लेकिन मैं यह नहीं समझ सकता कि वास्तव में कैसे उपयोग किया जाए और ऐसा कोई वास्तविक ट्यूटोरियल नहीं लगता है, इसलिए मैं यह निर्धारित नहीं कर सकता कि इससे मेरी मदद मिलेगी या नहीं। – chobo2