2012-09-11 10 views
6

क्या वास्तव में एनयूनीट और मोनो डेवेल टेस्ट धावक का उपयोग करके यूनिट परीक्षण मोनो टच परियोजनाओं का परीक्षण करने का एक अच्छा तरीका है?यूनिट परीक्षण मोनो टच परियोजनाओं के लिए सबसे अच्छा तरीका?

मुझे पता है कि आधिकारिक मोनो टच यूनिट परीक्षण परियोजना प्रकार है, लेकिन सिम्युलेटर के भीतर परीक्षण चलाना वह तरीका नहीं है जिस तरह से मैं जाना चाहता हूं। अभी के लिए मैं MonoDevelop परीक्षण धावक के साथ परीक्षण चलाने के लिए चाहता हूँ, बाद में सब कुछ जेनकींस (सीआई) के साथ काम करना चाहिए।

मुझे यूआई विशिष्ट कोड के बारे में सीमाएं पता हैं, इसलिए जो भी मैं परीक्षण करना चाहता हूं उसके पास मोनो टच के साथ कुछ लेना देना नहीं है, यह सीपारे परियोजनाओं के भीतर व्यापार तर्क के बारे में है।

MonoTouch लाइब्रेरी प्रकार परियोजनाओं के लिए परीक्षण को जोड़ कर, मैं हो रही है System.IO.FileNotFoundException के रूप में यहाँ वर्णित: http://ben.phegan.name/index.php/2011/02/28/monotouch-and-unit-testing/

एक अलग NUnit परीक्षण परियोजना का उपयोग करके, मैं परीक्षण के अंतर्गत अपने सिस्टम संदर्भ नहीं दे सकता, क्योंकि इसके प्रोजेक्ट प्रकार मोनो टच लाइब्रेरी प्रोजेक्ट का प्रकार है, जो निश्चित रूप से एक असंगत लक्ष्य ढांचा (vMonoTouch) है।

तो, Touch.Unit के लिए कोई वास्तविक विकल्प नहीं है, है ना?

उत्तर

8

वहाँ वास्तव में NUnit

Touch.Unit

और monodevelop परीक्षण धावक का उपयोग कर इकाई परीक्षण MonoTouch परियोजनाओं के लिए एक अच्छा तरीका है?

नहीं

वास्तव में। मोनो टच परियोजनाएं monotouch.dll पर निर्भर करती हैं जिन्हें आईओएस (ओएसएक्स नहीं) के तहत निष्पादित करने की आवश्यकता होती है। तो सिम्युलेटर या उपकरणों पर निष्पादित करने के लिए धावक की आवश्यकता है।

अब अपने प्रश्न में कुछ गलतफहमी है:

बाद में सब कुछ जेनकींस (सीआई) के साथ काम करना चाहिए।

Touch.Unit आईओएस सिम्युलेटर और/या दोनों डिवाइसों का उपयोग करके निरंतर बिल्ड/एकीकरण सर्वर (जब तक वे ओएसएक्स चला रहे हैं) के साथ पहले से ही उपयोग किया जाता है। विवरण here उपलब्ध हैं।

मैं यूआई विशिष्ट कोड के बारे में सीमाओं पता है,

Touch.Unit नहीं यूआई परीक्षण के बारे में है। वास्तव में यह यूआई परीक्षण पर सुंदर खराब है (लेकिन यह बिंदु के बगल में है)।

Touch.Unit एक परीक्षण धावक है जो आईओएस पर निष्पादित करता है। यही कारण है कि आप अपने खुद के परीक्षण के अंदर MonoTouch/iOS एपीआई का उपयोग करने की अनुमति देता है (यह UIKit हो सकता है, लेकिन यह StoreKit, GameKit, * किट, किसी भी फाउंडेशन वर्ग ... यह एक बहुत बड़ी दुनिया है हो सकता है)।

तो, Touch.Unit के लिए कोई वास्तविक विकल्प नहीं है, है ना?

हां।यदि आपका व्यापार तर्क अच्छी तरह से अलग है और monotouch.dll पर निर्भर नहीं करता है तो आप इसे बनाने में सक्षम होना चाहिए या तो के रूप में:

  • एक गैर MonoTouch परियोजना (विभिन्न परियोजना, एक ही स्रोत), यानी के साथ जुड़ा हुआ नियमित ढांचे; या
  • आपकी इकाई परीक्षण असेंबली के भीतर से स्रोतों से लिंक (जो नियमित फ्रेमवर्क से लिंक करता है);

क्लासिक nunit परीक्षण विधानसभा फिर एक नियमित ढांचा परियोजना होगी और monodevelop इकाई परीक्षण धावक के भीतर से डिफ़ॉल्ट NUnit धावक या से चलाने के लिए सक्षम हो जाएगा कि।

+0

आपके उत्तर के लिए धन्यवाद (बीटीडब्ल्यू। मैंने आपको कुछ मिनट पहले टच बनाने के बारे में एक ईमेल लिखा था। मेरे द्वारा उपयोग करें;))। मुझे पता है कि Touch.Unit यूआई परीक्षण के बारे में नहीं है, मेरा मतलब क्या था जो आपने बेहतर तरीके से वर्णित किया था, विशेष रूप से monotouch.dll से निर्भरता। मेरे पास परीक्षण के तहत मेरे वर्तमान सिस्टम में निर्भरता नहीं है, इसलिए मैं उस चारों ओर struggeling द्वारा आश्चर्यचकित था। दो प्रकार की परियोजनाओं में कक्षाओं का प्रबंधन करना एक अच्छा तरीका प्रतीत होता है। आपके सुझाव के लिए धन्यवाद। –

संबंधित मुद्दे