我们是否应该在AngularJS项目的Karma单元级别测试中使用CSS

bha*_*tol 5 javascript css unit-testing angularjs karma-runner

假设你的Javascript执行一些元素/位置计算,例如在angularjs指令中.

为了测试这个Javascript代码是否适合在karma.conf.js中包含CSS?

我看到一些受欢迎的项目确实包含了css文件.

例如ng-grid项目karma.conf.js

'dist/release/ui-grid.css',
Run Code Online (Sandbox Code Playgroud)

问题更多的是e2e测试与单元测试的边界.

小智 4

据我了解你的问题,这是我对此的看法 -

\n\n

单元测试是为了检查特定源代码的功能。

\n\n

有以下方法可以对函数进行单元测试

\n\n
    \n
  1. 将输入传递给函数并测试输出
  2. \n
  3. 传递输入并测试它为操作该输入所做的每件事(步骤)
  4. \n
  5. 测试它是否调用任何外部函数来获取任何输入并使用存根值作为该外部函数返回的对象/值
  6. \n
\n\n

如果指令中的方法正在操作 css,那么它应该在该方法中添加和删除 CSS 类,不是吗?因此,在断言中,它只需要检查特定类是否存在。(在我处理过的大多数情况下)

\n\n

CSS 文件是外部文件,它是 javascript 源文件的依赖项,并且应将其视为依赖项。

\n\n

e2e 测试类似于集成测试,以确保所有集成文件是否完美协同工作。因此,如果我们需要测试 CSS 更改,我们应该使用 e2e 进行检查。

\n\n

这里是来自 Mi\xc5\xa1ko Hevery 的关于单元测试的有趣演讲。它与 CSS 无关,但一般来说是单元测试和处理依赖关系(17:50)

\n