簡體   English   中英

僅出於測試目的導出函數是否被視為不好的做法?

[英]Is exporting a function just for testing considered a bad practice?

我有這個問題,尤其是在閱讀了關於測試 React 組件的官方 redux 文檔后:

https://github.com/reduxjs/redux/blob/master/docs/recipes/WritingTests.md

為了能夠在不處理裝飾器的情況下測試 App 組件本身,我們建議您也導出未裝飾的組件

即使是著名的https://www.reactboilerplate.com/ 也導出了未連接的組件,只是為了能夠在不模擬商店的情況下測試它們。

但是,僅僅為了使事情更容易測試而導出某些東西不是被認為是壞事嗎?

在某些情況下,開發人員可能會錯誤地導入並引入錯誤,因為從文件中導出了兩件事。

所以,問題本質上是:

我們可以對實際代碼進行更改以使測試更容易嗎?

雖然這個問題是 React 特有的,但如果知道其他語言或框架是否有類似的問題以及如何處理它們,那就太好了。

您始終可以根據您的環境進行條件導出。

就像是:

export default connect(mstp, mdtp)(component1);

export let tests = {
  component1,
  component2,
  ...
};

if (process.env.NODE_ENV !==   "test") {
  tests = undefined;
}

然后在你的測試文件中你做

import { tests} from ".";
const { component1, component2 } = tests;
//now test unconnected components

暫無
暫無

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

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