我应该将React Component的UT测试放到与该组件相同的文件中吗?

时间:2016-09-20 16:25:17

标签: javascript unit-testing reactjs mocha separation-of-concerns

因为将1个特定React组件的标记,样式和javascript放入1个单独的文件中变成了一种常用的模式。将单元测试(例如mocha describe s)放到同一个文件中也是一个好的模式吗?

注意:我们假设捆绑工具可以删除未使用的importdescribe 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', () => { ... });
});

1 个答案:

答案 0 :(得分:0)

这会束缚你,并会导致很多问题。我对你的架构了解不多。但是这样就不允许你使用任何分析工具。如果您将使用任何工具来测试您的Code Climate,例如SonarQube,它将进行解析并进行测试并失败。

另一种情况:假设您在推送到存储库时正在运行必要的构建。您的应用程序正在增长,您需要在每次拉动中运行SonarQube。如果您的提示正在触及*.spec.js个文件,则需要添加启发式检查。再一次,你不能。

这也没有使用,也不是最佳做法。最常用和最常见的做法是将您的规范放在具有相同名称和后缀spec.js的文件中,或放在组件根目录中的不同文件夹中,如__spec__/component.js

你的方法根本不会有任何帮助,你不能在任何非常糟糕的情况下将纯代码与测试分开。