簡體   English   中英

Angular中的單元測試

[英]Unit testing in Angular

據我了解,不建議使用Scenario-runner。 因此,現在您將在Karma中運行單元測試,並在Protractor中運行e2e測試。

對我來說,啟動用於運行單元測試的瀏覽器(karma)感覺不對。 我的假設正確嗎? 您如何測試Angular應用程序?

在測試角度時,一個相當好的實踐標准是使用phantomjs無頭瀏覽器進行單元測試。 無論您以哪種方式查看它,都需要啟動並運行JavaScript引擎,然后才能進行測試。 但是,由於沒有UI,因此使用無頭瀏覽器要快得多。

我使用Karma,chai和sinon(用於模擬)-我的開發工作流程使用phantomjs,然后我的CI和發布版本使用實際的瀏覽器IE,Chrome等運行CI構建時也使用BrowserStack。

您可以在此處查看測試示例和業力配置

您可能需要查看grunt / gulp才能實際管理測試過程。

您對測試有什么特別的追求嗎?

如果您想知道您的應用在不同瀏覽器中的表現,則需要在這些瀏覽器中運行它。 不同的瀏覽器具有不同的DOM實現,JavaScript版本和功能等。

例如,如果您要在Chrome或PhantomJS中運行以下代碼,則可以正常運行,但在IE8中,它將失敗:

var arr = [1, 2, 3]

arr.forEach(function(item) {
  console.log(item);
});

forEach在IE8中不可用,但在Chrome中可用。 針對IE8運行代碼的單元測試可能會發現這一點,而針對PhantomJS的單元測試則不會發現這一點。

...因此,如果您想在開發周期中運行諸如PhantomJS之類的“無頭”工具,那很好,但是請務必確保正在測試構建時關心的所有瀏覽器(希望使用CI)

我真的不喜歡每次運行Karma時都啟動Chrome,因此我改用了PhantomJS,它“安靜”地工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM