2012-10-29 40 views
0

當在做ZF2使用PHPUnit的單元測試,下面的消息顯示出來:返回PHPUnit的302錯誤時,該網站重定向工作正常

無法斷言,302場比賽預計200

我明白它表示,由於ZF2重定向命令了:

return $this->redirect()->toUrl('/admin/album/add'); 

但是,當我在瀏覽器中訪問它,該網站的作品找到上述代碼。但是它在單元測試中失敗了。

我應該改變什麼?

回答

2

瀏覽器與單元測試不一樣,反之亦然。你的期望或結果是不同的。

接收302響應代碼的瀏覽器必須重定向,這意味着它將採取響應中的URL並提交新的請求。您在瀏覽器中看到的結果是重定向的頁面。

單元測試不重定向。你的單元測試只是做你指導它做的事情。如果你的單元測試應該測試重定向,那麼你評估響應,正確的斷言是302而不是200.

如果你想確保重定向的URL是正確的,你必須編寫另一個測試那實際上是提取新頁面並測試200 OK的響應。

+0

實際上,合適的是測試302響應,並檢查位置標題以確保它指向適當的位置。 – weierophinney

+1

@weierophinney我認爲這是我寫的內容。 **正確的斷言是302而不是200 **。 –