因为将1个特定React组件的标记,样式和javascript放入1个单独的文件中变成了一种常用的模式。将单元测试(例如mocha describe
s)放到同一个文件中也是一个好的模式吗?
注意:我们假设捆绑工具可以删除未使用的import
和describe
s内的代码。
示例:
import React from 'react';
import { shallow } from 'enzyme';
import { expect } from 'chai';
const MyComponent = ({ active }) => (
<div style={{ color: active ? 'blue' : 'gray' }}>
{active ? 'this is active' : 'this is inactive'}
</div>
);
export default MyComponent;
// mocha tests (same file)
describe('MyComponent', () => {
context('active = true', () => {
it('should include is active text', () => { ... });
it('should have color blue', () => { ... });
});
context('active = false', () => { ... });
});
答案 0 :(得分:0)
这会束缚你,并会导致很多问题。我对你的架构了解不多。但是这样就不允许你使用任何分析工具。如果您将使用任何工具来测试您的Code Climate,例如SonarQube,它将进行解析并进行测试并失败。
另一种情况:假设您在推送到存储库时正在运行必要的构建。您的应用程序正在增长,您需要在每次拉动中运行SonarQube。如果您的提示正在触及*.spec.js
个文件,则需要添加启发式检查。再一次,你不能。
这也没有使用,也不是最佳做法。最常用和最常见的做法是将您的规范放在具有相同名称和后缀spec.js
的文件中,或放在组件根目录中的不同文件夹中,如__spec__/component.js
。
你的方法根本不会有任何帮助,你不能在任何非常糟糕的情况下将纯代码与测试分开。