2011-07-17 7 views
6

मुझे इसके बारे में कोई दस्तावेज नहीं मिला।सिम्फनी 2 में, कार्यात्मक परीक्षणों को कैसे प्रमाणित करने की आवश्यकता है?

मैं क्लाइंट ऑब्जेक्ट का उपयोग/लॉगिन करने, फॉर्म भरने और सबमिट करने के लिए उपयोग कर रहा हूं। यह ठीक काम करता है, लेकिन मुझे 302 प्रतिक्रियाएं वापस/लॉगिन में मिल रही हैं, जैसे कि क्रेडेंशियल्स गलत थे।

किसी भी मामले में, मुझे लगता है कि पहले अनुरोध के बाद सत्र तालिका में कम से कम एक पंक्ति होनी चाहिए, लेकिन कोई भी नहीं है। वो कैसे संभव है?

किसी भी विचार?

संपादित करें:

// Go to login page 
    $client = $this->createClient(); 
    $crawler = $client->request('GET', '/login'); 
    $this->assertTrue($crawler->filter('html:contains("Username")')->count() > 0); 

    // Fill in the form and submit it 
    $form = $crawler->selectButton('login')->form(); 
    $form['_username'] = 'admin'; 
    $form['_password'] = 'admin'; 
    $client->submit($form); 
    $this->assertEquals(302,$client->getResponse()->getStatusCode()); 
    $this->assertFalse($client->getResponse()->isRedirect('http://localhost/login')); 

पिछले ज़ोर विफल रहता है

+0

क्या आप इस परीक्षा को चलाने वाले कोड का हिस्सा दिखा सकते हैं? – Ibu

+0

@Ibu यकीन है, आप – HappyDeveloper

+0

हैं क्या आप अंततः इस परीक्षा में सफल हुए हैं? मुझे पता है कि यह एक लंबा शॉट है यह मानते हुए कि आपको याद होगा, लेकिन शायद ...? – mmmm

उत्तर

2

आप बुनियादी HTTP प्रमाणीकरण का उपयोग कर एक नया firewal बनाना चाहिए:

 
security: 
    ... 
    firewalls: 
     functional_test: 
      pattern: /secure/.* 
      stateless: true 
      http_basic: 
       provider: provider_name 
    ... 

फिर इस तरह एक ग्राहक बनाने के कोड यह रहा:

$client = $this->createClient(array(), array(
    'PHP_AUTH_USER' => 'username', 
    'PHP_AUTH_PW' => 'password', 
)); 

हैप्पी कोडिंग!