2010-01-16 21 views
2

上個月我開始使用Qooxdoo,因此我的使用經驗很少。我需要在Qooxdoo網站上創建一個像Testrunner這樣的測試應用程序,但是我需要在我的應用程序環境中進行測試。我按照這些步驟:qooxdoo測試源應用程序

  • 創建
  • 編譯源版本的應用程序與generate.py source
  • 創建generate.py test

測試在這個測試中,如果我嘗試讓我來訪問我的應用程序一個錯誤,因爲它未定義。

然後閱讀網站上的文檔,我發現這種類型的測試必須使用generate.py test-source完成。但是在測試文件夾中運行index-source.html的結果是一樣的:應用程序不工作。

這是什麼方法?我做錯了什麼?

+0

你能具體談談你的錯誤?在第一種情況下(「generate.py test」),究竟什麼是未定義的?亞軍應用程序開始了嗎?你有沒有在樹形菜單中看到任何測試?或者只有在運行測試時才顯示錯誤?請記住,qooxdoo的testrunner遵循JUnit方法,因爲您擁有對依賴應用程序類進行操作的測試類。如果你嘗試在測試中實例化你的主要Application.js,我認爲這是行不通的。 – ThomasH 2010-01-17 18:47:09

+0

例如,在應用程序的main()方法中,我在應用程序對象上設置了一個屬性「foo」。在測試中,我嘗試以這種方式獲取該屬性「qx.core.Init.getApplication()。foo」,但它未定義,因此唯一的解釋是應用程序未初始化。 – mck89 2010-01-18 08:11:50

回答

2

使用generate.py testgenerate.py test-source爲您創建一個testrunner應用程序,就像您在qooxdoo網站上看到的一樣。但是您自己的testrunner包含您在應用程序的測試命名空間中編寫的每個測試。

該testrunner主要設計用於單元測試,這意味着測試應用程序的單個小部分。例如,如果您有某種數據操作對象,則可以通過在應用程序代碼中創建這些對象來輕鬆測試該對象。對於像應用程序那樣的小對象也是如此。您可以創建在一個單元測試您的應用程序的實例,並訪問該應用程序的方法,以及:

var app = new customNamespace.Application(); 
this.assertTrue(app.yourMethodName()); 

但如果你真的需要一次測試整個應用程序,硒[1]可能是一個更好選擇。 qooxdoo爲用戶提供了一個Selenium用戶擴展,以便於處理qooxdoo應用程序。

[1] http://seleniumhq.org/

[2] http://qooxdoo.org/contrib/project/simulator

+0

感謝您的回答,所以目前沒有辦法使用只有qooxdoo testrunner測試整個應用程序 – mck89 2010-01-18 08:13:24

+0

對不起,我更好地閱讀了您的答案並查看了文檔,現在我明白了我應該怎麼做。再次感謝你。 – mck89 2010-01-18 08:46:07