2016-11-24 59 views
1

我想用Laravels內置的應用程序測試框架進行應用程序測試。 Due to the documentation你可以選中一個複選框以:如何在使用Laravel進行測試時選中複選框

// HTML 
<input name="accept-terms" type="checkbox"> 

// PHP 
$this 
    ->visit('/foo/bar') 
    ->check('accept-terms') 

工作正常。但是,有時我有很多複選框。像:

// HTML 
<input id="feature-1" name="features[]" type="checkbox" value="1"> 
<input id="feature-2" name="features[]" type="checkbox" value="2"> 
<input id="feature-3" name="features[]" type="checkbox" value="3"> 

// PHP 
$this 
    ->visit('/foo/bar') 
    ->check('#feature-1') 

我叫不上名字獲取它們(如上),所以我想通過自己的身份證拿來。但是,它似乎不支持,因爲我總是得到一個unreachable field錯誤。

+0

這可能會實現:'$這個 - >訪問( '/富/酒吧') - >獲取( '功能[]')[0] - >打勾()' –

+0

當然,你的意思是'GET' ? 'get'的確會觸發一個HTTP GET請求。 – miho

回答

1

有多個人提問相同的問題。我似乎無法找到正好你在找什麼。另一種方法是提交複選框本身的值而不是檢查它們。

$input = ['features' => [1,2]]; 

$this->visit('/foo/bar') 
    ->submitForm('MyForm', $input); 
+0

這可能是最有意義的。就PHP測試而言,我們只需要考慮輸入,而不是DOM的狀態。也就是說,有一個應該起作用的'''tick()'''方法。 –

相關問題