【问题标题】:Javascript test structuring in .NET / Visual Studio.NET / Visual Studio 中的 Javascript 测试结构
【发布时间】:2013-07-10 05:51:56
【问题描述】:

我有一个 .NET MVC 解决方案,它包含各种 javascript,我希望能够使用 QUnit 测试这些脚本,所以

我在哪里放置测试脚本和 QUnit 工件?

在mvc项目中?如果是,那么我大概需要在部署应用程序时通过构建过程删除这些脚本?好像有点垃圾?我真的不希望测试代码与生产代码混在一起。

在单独的“测试”网络项目中?非常适合更好的分离,但是我需要一些构建操作,将我的 SUT 脚本移动到这个单独的项目,以便测试脚本可以引用它们。可能比选项 1 更可取,但还是有点垃圾?

最佳做法是什么?有最佳实践吗?还有什么我没提到的方法吗?任何可以提供帮助的工具?我错过了什么明显的东西吗?

This 建议单独项目 + Xcopy 类型的解决方案,但答案很老了。

谢谢。

【问题讨论】:

    标签: javascript asp.net asp.net-mvc visual-studio unit-testing


    【解决方案1】:

    如果您可以选择,只需将测试和测试基础设施放在主代码中即可。

    如果一定要分开,那么大部分人只是做一个单独的测试项目,引用生产代码(包括js脚本)。

    【讨论】:

      【解决方案2】:

      像大多数人一样,我喜欢将测试与生产代码分开。

      如果您使用的是 VS2012(或更高版本)和 Chutzpah test adapter,那么您可以简单地为您的测试创建一个单独的类库,就像您为您的 .NET 代码所做的那样。

      将 tests.js` 文件添加到测试类库并简单地从主项目中引用相应的脚本。例如,使用 Jasmine 和 Angular:

      /// <reference path="../../MainProject/lib/angular/angular.js" />
      /// <reference path="../../MainProject/lib/angular/angular-mocks.js" />
      /// <reference path="../../MainProject/lib/angular/angular-resource.js" />
      /// <reference path="../../MainProject/lib/jasmine.js" />
      /// <reference path="../../MainProject/scripts/controllers.js" />
      
      describe('My controller tests', function () {
        ...
      });
      

      如果您想避免在您拥有的每个测试 js 文件中重复所有这些引用路径,您可以将它们添加到 _references.js 文件中,然后在您的 tests.js 文件中引用该脚本。您需要手动引用该文件,因为您不在 Web 项目中,并且控制台项目没有与 Web 项目相同的隐式引用。

      【讨论】:

      • _references.js 也有很好的提示。
      • 次要问题,确保您为单元测试创​​建了一个 Web 项目。我创建了一个普通的单元测试项目,并且没有出现 _references 菜单选项。 Chutzpah 似乎并不关心项目类型,所以其他一切似乎都很好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 2011-04-19
      • 1970-01-01
      相关资源
      最近更新 更多