簡體   English   中英

運行JEST測試用例時如何將全局變量設置為true

[英]How to set a global variable to true when running JEST test cases

在react應用中,我在fetch()中使用相對URL將API請求發送到服務器。 但是,這在瀏覽器中效果很好,但是當我運行單元測試用例(JEST)時,同構提取會引發錯誤,指出僅允許絕對URL。 有什么辦法可以解決這個錯誤? 我試圖包裝fetch()函數並使用它。 像這樣:

    function customNodeFetch(url, options) {
        var finalURL = (isTesting)? 'http://localhost:3000/' : url;
        return fetch(finalURL, options);
     }

在這里,我不知道在運行測試用例時如何將isTesting設置為true。 我試圖將常量放入配置中。 但是,它不起作用。 還有其他解決方法嗎?

建議不要使用全局變量來修改單元測試的代碼行為,而建議注入測試值。 在示例中顯示的函數已經接受url作為參數,因此在運行測試時將localhost傳遞給該函數,在代碼運行時將真實的URL傳遞給該函數。 通過分叉僅用於測試的邏輯,您使單元測試無效,因為它們不再測試您的應用程序在實際場景中采用的代碼流。

暫無
暫無

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

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