2016-03-31 24 views
0

Kodekiption REST modülü ile bazı testler yazıyorum.REST module get/set çerez (ler)

Üzerinde çalıştığım proje erken aşamalarda ve henüz belirteç tabanlı kimlik doğrulama uygulamamış; Bu nedenle, kimlik doğrulaması bir REST API'sı yoluyla yapılır, ancak kalıcılık için $_SESSION kullanır.

Kimliği doğrulanmış istekleri sınamak için PHPSESSID çerezini tutmalı ve her istekte göndermeliyim. REST modülü ile çalışırken tanımlama bilgilerini okuma/ayarlama yolu var mı?

+0

numaralı telefonu ayarlayarak yeniden kullanmak için bir yöntem yazabilirsiniz. Her bir yanıtla birlikte yenisini gönderirseniz, istemci çerezi sıfırlar. Sorunun ne olduğunu anladığımdan emin değilim. – PassKit

cevap

1

Tamam Çözümüm var. Suite adım api, bu nedenle codeception tests/_support/Helper/Api.php'da bir dosya oluşturdu. Burada değişiklik yapmadan önce yardımcıyı etkinleştirmek için YAML dosyamızı api.suite.yml düzenledim. Benim YAML dosyası şöyle görünür:

class_name: ApiTester 
modules: 
    enabled: 
     - REST: 
      depends: PhpBrowser 
      url: https://website.com/api/ 
      part: Json 
     - \Helper\Api 

Şimdi dosya, etkin sizin yardımcı okumak için oluşturulan dosyaları günceller ve böylece codecept build çalıştırıldığını.

public function capturePHPSESSID() 
{ 
    $cookie = $this->getClient()->getCookieJar()->get('PHPSESSID'); 
    echo "Cookie: ", $cookie; 
} 

/** 
* @return \Symfony\Component\HttpKernel\Client|\Symfony\Component\BrowserKit\Client $client 
*/ 
protected function getClient() 
{ 
    return $this->getModule('REST')->client; 
} 

Bu PHPSESSID çerez okumak için gereken tüm şudur: Api yardımcı sınıfta

, ben iki yöntem eklendi! Daha sonra onu yakalamak için çekinmeyin, böylece $this->getClient()->getCookieJar()->set(....)