繁体   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