2011-01-26 12 views
0

私はZendフレームワークでphpUnitテストを作成しようとしています。今度は私が面白いのために、入力フォームにのテキストという2つの入力フィールドがあることをテストしたいと思っています。Xpathでテキスト入力フィールドの量を確認する

だから私はこのコード行書いた:

$this->assertQueryCount('form#contact-form/input[@type="text"]',2); 

をしかし、それは返します

1) IndexControllerTest::testCanDisplayContactForm Failed asserting node DENOTED BY form#contact-form/input[type="text"] OCCURS EXACTLY 2 times

だから私は、ID 'コンタクト' フォームでフォームを持っています。そして、この中でタイプのすべての入力フィールドを取得したいテキスト

アイデアやヒント?

+0

それはすべきではない '@のtype'が?これは属性です。 – biziclop

+0

はい私はそれを変更しましたが、同じエラーが発生します。 – sanders

答えて

1

この

 
form#contact-form/input[type="text"] 

は、より多くのjQueryのセレクタの構文のようなものです、それは、XPathではありません。

 
//form[@id = 'contact-form']/input[@type = 'text'] 

が、何assertQueryCount()機能実際を期待することはCSSセレクタである:これはある

 
form#contact-form input[type="text"] 
+0

このエラーが発生しました:1)IndexControllerTest :: testCanDisplayContactForm DOMXPath :: query():無効な式 – sanders

+1

@sanders:式は有効なXPathです。それが動作しない場合、 'assertQueryCount()'は実際にXPathを期待していません(そして、[docs](http://framework.zend.com/apidoc/core/Zend_Test/PHPUnit/Zend_Test_PHPUnit_ControllerTestCase.html #assertQueryCount)reveals:CSSセレクターが必要です)。拡張回答を参照してください。 – Tomalak

+1

@sanders:XPath式を期待するメソッドは['assertXpathCount'](http://framework.zend.com/apidoc/core/Zend_Test/PHPUnit/Zend_Test_PHPUnit_ControllerTestCase.html#assertXpathCount)です。 –

関連する問題