我用PHPUnit
和Selenium-server
單元測試了我的Yii應用程序。如何斷言當前的URL?
代碼:
class StartSurveyRedirectTest extends WebTestCase
{
public $fixtures=array(
'sessions'=>'SurveySession',
'surveys' => 'Survey',
);
public function testActive() {
$survey = $this->surveys('survey_active');
$user_id = 1;
$imid = 'nl1234-9876';
$this->open('veldwerk/survey/redirect?survey_id=' . $survey->survey_id .
'&user_id=' . $user_id .
'&imid=' . $imid .
'&' . $survey->security_parameter_name . '=' . $survey->getSecurityParameterValue()
);
//assert if redirected
$this->assertNotEquals($this->url(),TEST_BASE_URL .
'veldwerk/survey/redirect?survey_id=' . $survey->survey_id .
'&user_id=' . $user_id .
'&imid=' . $imid .
'&' . $survey->security_parameter_name . '=' . $survey->getSecurityParameterValue()
);
}
}
當我開始測試結果:
There was 1 error:
1) StartSurveyRedirectTest::testActive
Method url not defined.
D:\workspace\Pi\framework\test\CWebTestCase.php:63
D:\workspace\Pi\protected\tests\functional\StartSurveyRedirectTest.php:27
D:\workspace\Pi\protected\tests\functional\StartSurveyRedirectTest.php:27
Caused by
BadMethodCallException: Method url not defined.
D:\workspace\Pi\framework\test\CWebTestCase.php:63
D:\workspace\Pi\protected\tests\functional\StartSurveyRedirectTest.php:27
D:\workspace\Pi\protected\tests\functional\StartSurveyRedirectTest.php:27
所以我真正想要測試是如果用戶被重定向。我認爲最簡單的方法是檢查URL,但事實證明它不起作用?雖然在硒文檔和PHPUnit文檔說它可以..
Yii框架不支持這?或者我做錯了什麼?
感謝,但對類'未知屬性 '網址'「StartSurveyRedirectTest'.'記住我測試一個Yii應用程序 – 2013-05-15 06:39:04
我已經更新了我的答案和正確的路徑來獲取網址。爲什麼測試用YII編寫的應用程序很重要?測試本身不是寫在Yii上的嗎?我不確定'StartSurveyRedirectTest'是什麼,但是應該創建一個新的'WebDriver'實例,並且該變量是我們需要從'getCurrentPageUrl()'調用的那個變量。合理? – ragamufin 2013-05-15 07:48:07
謝謝@ragamuffin讓我知道司機。我能夠確定這個驅動程序是'PHPUnit_Extensions_SeleniumTestCase_Driver'的一個實例,它讓我找出答案 – 2013-05-15 08:44:04