大約半年前,我開始深入單元測試。我進入了TDD(或者我認爲的那樣),現在我想開發一個MVC應用程序行爲驅動。 驗收測試(真正的端到端)的概念對我來說是新的,因爲我的上一個項目沒有在驗收測試環境中運行。BDD和ASP.NET MVC - 尋找高速公路
我開始閱讀一些很好的文章,特別是Sanderson的http://blog.stevensanderson.com/2010/03/03/behavior-driven-development-bdd-with-specflow-and-aspnet-mvc/,並且通過閱讀他關於該主題的書來支持我的MVC技能。
我使用SpecFlow和SimpleBrowser進行端到端測試。 通過導航欄駕駛導航是一塊蛋糕,但我現在卡住了。 我的目標是實現用戶帳戶,以進一步創建文章和評論。駕駛註冊過程讓我頭痛。鑑於此功能的文件:
Feature: User accounts
In order to customize and influence page content
As a user
I want to able to create an own user account
Scenario: Create a user
Given I am on the /Account/Create page
When I fill out the registration formular as follows
| NickName | EmailAddress |
| test123 | [email protected] |
And I click the "Create" button
And I clicked the link in the authentication mail
Then I should be on the root page
And I should see the message "Welcome test123!"
我真的不能弄清楚如何提供必要的測試環境(在本例中,郵件服務器)並進行測試不太脆(想重新標記「創建」按鈕的「提交」)。更不用說在捕捉生成器中編織,以防止自動創建用戶(諷刺)。也許我只是在想太多,你實際上不應該在TDD中,但有時我只是盯着屏幕,想着我的下一個測試。
那麼......在文本牆後的實際問題:我應該如何實現這種行爲?
- 玉碎UI水平測試,並實現採集邏輯
- 回落到控制器級別的測試需要重構
- 你見識一下
但是從哪裏可以獲得端到端場景中第二次測試的確認鏈接?你真的碰到你的測試數據庫嗎? –
這取決於你,你可以運行代碼來生成一個新的用戶和確認鏈接,然後將它傳遞給你的測試,或者你甚至可以嘲笑支票以查看兩種情況(成功和失敗)。 –