簡體   English   中英

我如何覆蓋javascript代碼模式|| {}

[英]How do I cover the javascript code pattern || {}

我正在使用運行我的Jasmine SpecRunner的JSCover,它檢查了以下代碼片段:

var MyRootObject = MyRootObject || {};

我的目標是使覆蓋率達到100%,但是我不確定如何最好地涵蓋這種初始化MyRootObject的方法。

每個庫javascript文件的開頭都使用此模式,以確保文件的加載順序不重要(並且$ .extend'ed里面的函數和變量)。

基本上,問題在於,第一次且唯一一次在SpecRunner中加載此腳本時,它僅運行此測試的一側,而另一路徑未經測試。

深入研究后,我發現了一個適合我的解決方案,當然,您的工作量可能會有所不同:

var MyRootObject = MyRootObject || {};
$.extend(true, MyRootObject, {...});

我已替換為:

var MyRootObject = $.extend(true, MyRootObject, {...});

在JQuery內部,如果目標(MyRootObject)為null或未定義,它將自動將函數內的目標分配為{}。 通過使用外部庫(我已經在使用),我不再有我不遵循的條件路徑,因為它被委托給了JQuery庫。

暫無
暫無

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

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