ती हूँ काफी नया करने के लिए अजगर प्रोग्रामिंग और एक सवाल पर परीक्षण का उपयोग कर Pytest. में एक उच्च स्तर के लिए, मैं एक प्रोग्राम है कि के 3 टुकड़े उपयोगकर्ता इनपुट उत्पन्न करता है और एक पाठ फ़ाइल के अंत में. के लिए अपने परीक्षण में, मैं करने के लिए चाहते हैं मूल रूप से फ़ाइलों की तुलना अपने कार्यक्रम outputted के साथ, यह क्या किया जाना चाहिए.
अब, मैं नहीं हूँ यकीन है कि कैसे बारे में जाने के लिए परीक्षण. कार्यक्रम में ही कोई तर्क लेता है, लेकिन बस पर निर्भर करता है, 3 टुकड़े के उपयोगकर्ता इनपुट, जो मैं का उपयोग करेंगे monkeypatch अनुकरण करने के लिए. क्या मैं बनाने के लिए एक नया अजगर फ़ाइल कहा जाता है program_test.py और तरीकों में यहाँ है कि कॉल मूल कार्यक्रम? मैं यह कोशिश की है, लेकिन मैं कर रहा हूँ परेशानी हो रही है वास्तव में बुला मूल कार्यक्रम और भेजने में नकली आदानों. या, मैं परीक्षण किया है मूल कार्यक्रम में (जो बहुत मतलब नहीं होता है मेरे लिए).
मैं कुछ करना चाहते हैं, इस तरह:
import my_program
def test_1():
inputs = iter(['input1', 'input2', 'input3'])
monkeypatch.setattr('builtins.input', lambda x: next(inputs))
my_program
# now do some assertion with some file comparison
# pseudocode
assert filecompare.cmp(expectedfile, actualfile)
यह सिर्फ चल रहा है लगता है मूल कार्यक्रम और मुझे लगता है कि इसके साथ क्या करने के लिए आयात बयान यानी यह कभी नहीं चल रहा है test_1(), शायद इसलिए क्योंकि मैं कभी नहीं इसे कहते हैं? किसी भी मदद की सराहना की जाएगी!