मैं प्रेजेंटर-फर्स्ट दृष्टिकोण को एक नई परियोजना में उपयोग करने का प्रयास कर रहा हूं। मैं खुद को नीचे से सबसे नीचे मिल गया। क्या मैं इस परीक्षण में इतने सारे दावों को शामिल करके गरीब इकाई परीक्षण प्रथाओं का उपयोग कर रहा हूं? यदि हां, तो परीक्षण के लिए या प्रस्तुतकर्ता.सेटऑवरव्यू के कार्यान्वयन के लिए मेरे दृष्टिकोण के साथ समस्या है? दूसरे शब्दों में, setOverview विधि self.view.setSalesQty की बजाय self.setSalesQty को कॉल करनी चाहिए? इस मामले में, मेरे पास presenter.setSalesQty के लिए एक अलग परीक्षण होगा और testSetOverview परीक्षण को अब परीक्षण करने के बारे में चिंता करने की आवश्यकता नहीं होगी।एकाधिक प्रविष्टियों के साथ प्रेजेंटर-फर्स्ट यूनिटस्ट
def testSetOverview(self):
# set up mock objects
p = PropertyMock()
type(self.mock_model).descriptions = p
self.mock_model.getData.side_effect = [5, 10]
self.mock_model.getDescription.side_effect = 'Description'
# get required variables
end = dt.date.today()
start = dt.date(year=end.year, month=1, day=1)
pn = 'abcd'
# call presenter method
self.presenter.setOverview(pn)
# test to make sure proper calls were made
model_getData_calls = [call(pn=pn, start=start, end=end,
data=self.mock_model.SHIPPED_QUANTITY),
call(pn=pn, start=start, end=end,
data=self.mock_model.PRICE_PAID)]
self.mock_model.getData.assert_has_calls(model_getData_calls, any_order=True)
assert self.mock_model.getDescription.called
self.mock_view.setSalesQty.assert_called_with(val=5)
self.mock_view.setSalesDols.assert_called_with(val=10)
self.mock_view.setDescription.assert_called_with(val='Description')
self.mock_view और self.mock_model के बारे में अधिक जानकारी नहीं डालना जानबूझकर था - ये नकली वस्तुएं हैं, और इस तरह (मेरी समझ में) परीक्षण के तहत नहीं होना चाहिए। प्रस्तुतकर्ता स्वयं परीक्षण में है, और यह इन दो वस्तुओं पर निर्भर है, और इसका उपयोग करने के लिए उनका उपयोग करता है। – wesanyer
हां, उन्हें परीक्षण नहीं किया जाना चाहिए, लेकिन वे जो वस्तुएं प्रस्तुत करते हैं उन्हें देखकर आपको सलाह दी जा सकती है कि आपको अपना परीक्षण कैसे लिखना चाहिए। – Jonathan
पर्याप्त मेला। जिस दृष्टिकोण को मैं ले रहा था, हालांकि, "प्रस्तुतकर्ता पहले" को ध्यान में रखते हुए, अच्छी तरह से प्रस्तुतकर्ता इकाई परीक्षण और कार्यान्वयन पहले लिखना था। मॉडल या दृश्य के लिए कुछ भी लिखने से पहले। मैंने प्लेसहोल्डर के रूप में मैक्स में सबबैड किया, और मेरे प्रस्तुतकर्ता परीक्षण और कार्यान्वयन को लिखने के बाद, मैंने अपने मॉडल के लिए प्रारंभिक स्थान के रूप में मॉक किए गए विधि कॉल का उपयोग किया और यूनिट परीक्षण और कार्यान्वयन को देखा। क्या यह अटूट है? – wesanyer