12

使用 Karma/Jasmine 为 Angular 应用程序设置单元测试套件时,是否建议config在测试文件中包含带有 app 模块功能的 js?

我已经读过建议将其排除在测试之外,但这似乎很尴尬,因为config函数中经常会发生关键设置,这会阻止应用程序工作。

这方面的最佳做法是什么?创建一个以“模拟”方式执行相同操作的模拟配置函数?

我自己也遇到过这个问题,但想了解更广泛的策略: How do unit test with angular-translate

4

1 回答 1

3

在我的应用程序中,我最终使用了以下解决方案:

定义一个“appBase”模块,其中包含我在单元测试时要运行的所有config和函数,并创建另一个“app”模块,该模块将“appBase”模块声明为依赖项并包括我不运行的所有函数单元测试时。然后我所有的单元测试都使用“appBase”模块,而最终应用程序使用“app”模块。在代码中:runconfigrun

angular.module('appBase', ['dependencies'])
       .config(function() {
            // This one will run when unit-testing. Can also set-up mock data
            // that will later be overridden by the "app" module
        });

angular.module('app', ['appBase'])
       .config(function() {
            // This function will only run in real app, not in unit-tests.
       });
于 2013-11-19T21:37:18.073 回答