2012-07-20 11 views
5

मैं केक 2.2, में एक ऐप विकसित कर रहा हूं और वर्तमान में कुछ यूनिट परीक्षण लिख रहा हूं। मॉडल परीक्षण ठीक काम कर रहे हैं, मेरे पास सामान्य रूप से नियंत्रक परीक्षण के साथ कुछ समस्याएं हैं।केकफ़्पी 2.0 मॉक ऑथ

स्थिति: - अधिकांश कार्य एक उपयोगकर्ता लॉगिन की आवश्यकता होती है - वहाँ कस्टम घटकों और विक्रेता पुस्तकालय हैं - मैं सभी तालिकाओं

के लिए जुड़नार है समस्या: - कई कार्यों "इस $ का उपयोग - मुझे लगता है कि कार्रवाई के लिए एक परीक्षण लिखते हैं, उपयोगकर्ता के डेटा (जाहिर है) है

मेरे (काम नहीं कर रहा) समाधान विद्यमान नहीं -> Auth-> उपयोगकर्ता() "विधि उपयोगकर्ता के डेटा पाने के लिए: - मैंने ऑथ घटक को नकल करने की कोशिश की, ताकि इसमें उपयोगकर्ता-विधि शामिल हो और हमेशा एक स्थिर ar वापस कर दें

$Days = $this->generate('Days', array('components' => 'Auth')); 
$Days->Auth->expects($this->once())->method('user')->will($this->returnValue(array(..userdata etc.))); 
$result = $this->testAction('/days/settings'); 

यह सिर्फ कह रहता है कि विधि आमंत्रित नहीं किया गया (हालांकि दिन नियंत्रक अंदर सेटिंग्स विधि इसमें केवल एक ही समय कॉल): रे उपयोगकर्ता डेटा वाली है, लेकिन यह शून्य देता है, यहाँ कोड है। नकली के साथ क्या गलत है? हमम ..

किसी भी मदद की सराहना की जाएगी!

-edit- विधि का कोड है कि परीक्षण किया जा रहा:

public function myDays() 
{ 
    $user = $this->Auth->user(); 
    $days = $this->Day->find('all', array('conditions' => array('user_id' => $user['id'], 'active' => 1))); 
    $this->set('days', $days); 
} 
+0

क्या आप अपने परीक्षण में एक से अधिक बार 'testAction' को कॉल कर रहे हैं? क्या यह आपकी पूरी परीक्षा विधि है? –

+0

हाय, नहीं, केवल एक बार, यह अभी के लिए उस क्रिया में पूरा कोड है, क्योंकि यह काम नहीं करता है, मैंने इसके लिए अन्य परीक्षण कोड नहीं लिखा .. –

+0

कृपया जिस विधि का आप परीक्षण कर रहे हैं उसे भी शामिल करें, यह हो सकता है क्या चल रहा है यह देखने में मदद करें। –

उत्तर

1

शायद का उपयोग कर:

$Days->Auth->staticExpects(

उपयोगकर्ता के बाद से() एक स्थिर तरीका है।