2011-06-30 5 views
11

मैं अपने Symfony2 एप्लिकेशन में उपयोगकर्ताओं को प्रमाणीकृत करने के लिए FacebookBundle का उपयोग करता हूं। हालांकि, मैं phpunit के साथ कार्यात्मक परीक्षण बनाना चाहता हूं जो एक प्रमाणित उपयोगकर्ता का उपयोग करता है।एक सिम्फनी 2 कार्यात्मक परीक्षण में प्रमाणीकृत उपयोगकर्ता का उपयोग कैसे करें?

इसके अलावा, मैं इसके लिए एक फेसबुक उपयोगकर्ता का उपयोग नहीं करना चाहता, लेकिन एक harcoded।

क्या कोई यह जानता है कि इसे कैसे कार्यान्वित किया जाए?

उत्तर

16

यह वास्तव में काफी सरल है।

  1. परीक्षण वातावरण के लिए सेटअप security.yml

    security: 
        encoders: 
         Symfony\Component\Security\Core\User\User: plaintext 
    
        providers: 
         in_memory: 
          users: 
           user: { password: userpass, roles: [ 'ROLE_USER' ] } 
           admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 
    
        firewalls: 
         secured-area: 
          pattern: ^/demo/secured/ 
          http_basic: 
           realm: "Secured Demo Area" 
    
  2. आप देख सकते हैं HTTP प्रमाणीकरण परिभाषित नहीं है (यह Symfony 2.0 RC3 से एक टुकड़ा है)।

    $client = static::createClient(array(), array(
        'PHP_AUTH_USER' => 'user', 
        'PHP_AUTH_PW' => 'userpass', 
    )); 
    

यह लिंक उपयोगी हो सकता है: http://symfony.com/doc/current/testing.html

+2

अपने जवाब के लिए धन्यवाद तो अब, तुम सब करने की ज़रूरत सेटअप करने के लिए कार्यात्मक परीक्षण में एक ग्राहक है। हालांकि, मैं चाहता हूं कि इस उपयोगकर्ता के पास अन्य कई संपत्तियां हों जिनका उपयोग मेरे आवेदन में किया जाता है। उदाहरण के लिए, उनके पास $ facebookId संपत्ति है। मैं कस्टम गुणों के साथ हार्डकोडेड उपयोगकर्ताओं का उपयोग कैसे कर सकता हूं? – Reuven

+0

परीक्षण वातावरण के लिए आप एक अलग सुरक्षा कॉन्फ़िगरेशन कैसे निर्दिष्ट करते हैं? मैं अपने cusom wsse proviver स्मृति में बुनियादी करने के लिए बदलने में सक्षम होना पसंद करेंगे। – greg

+0

@wistlergreg मुझे विश्वास है कि आपको 'config_test.yml/.xml' में' सुरक्षा' परिभाषा को ओवरराइड करना है। – Crozin