Selenium.SeleniumException: ERROR: Element link=Add new user not found
at Selenium.HttpCommandProcessor.DoCommand(String command, String[] args)
at Selenium.DefaultSelenium.Click(String locator)
at MRProjectTest.Functionals.Selenium.ManageUsersTests.TestAddNewUser() in
ManageUsersTests.cs:line 34
因為錯誤報告說在網頁上找不到內容,所以我們就把內容添加到add.vm中:
重新測試:
錯誤再次出現,因為將表單的內容提交到create.aspx之后,點擊頁面按鈕的行為尚未實現。
然后添加如下代碼以保存數據:
現在我們稍等片刻,因為無論list 行為還是數據庫中都不存在User類。
在表示層下對其它層進行TDD為了構造代碼,開發者需要根據“測試先行”構造User類。 雖然在有的情況下這沒有必要,因為ActiveRecord已經很好地被測試過了,并且它也通過了功能測試。 但仍需指明應該如何處理一些更為復雜的情況。
接下來的測試不是功能測試,而是集成測試,一個利用數據庫的單元測試:
測試它會不會失敗。其實它甚至沒有進行編譯,所以首先是構造一個沒有任何方法的User類,強制編譯其代碼:
現在,運行測試:
Castle.ActiveRecord.Framework.ActiveRecordException: An ActiveRecord class (UserManagement.Model.User) was used but the framework seems not properly initialized. Did you forget about ActiveRecordStarter.Initialize() ?
at Castle.ActiveRecord.ActiveRecordBase.EnsureInitialized(Type type)
at Castle.ActiveRecord.ActiveRecordBase.Save(Object instance)
at Castle.ActiveRecord.ActiveRecordBase.Save()
at MRProjectTest.Database.UsersDataAccessTests.TestSaveNewUser()
in UserDataAccessTest.cs:line 23
錯誤表明User類沒有在ActiveRecord中初始化,因此對測試調整如下:
為ActiveRecord與構造器加上適當的屬性,并且重新運行測試,F在相應的數據庫表還沒有,但這可以在測試中添加如下代碼迅速進行補救:
ActiveRecordStarter.CreateSchema();//創建數據庫schema運行完測試后,數據庫表就生成了,但仍有一個問題:
System.NotImplementedException: todo
at UserManagement.Model.User.Find(Int64 id) in User.cs:line 72
at MRProjectTest.Database.UsersDataAccessTests.TestSaveNewUser() in
UserDataAccessTest.cs:line 41
完成對User類Find()方法的實現:
文章來源于領測軟件測試網 http://www.kjueaiud.com/