Javascript Grunt angularJs项目,不依赖后端';s数据
我用angular generator创建我的应用程序 有时我应该在创建后端之前为我的应用程序添加一些功能。我使用$httpBackend来模拟数据,下面是我使用的简单代码: e2e mocks.jsJavascript Grunt angularJs项目,不依赖后端';s数据,javascript,unit-testing,angularjs,web-applications,gruntjs,Javascript,Unit Testing,Angularjs,Web Applications,Gruntjs,我用angular generator创建我的应用程序 有时我应该在创建后端之前为我的应用程序添加一些功能。我使用$httpBackend来模拟数据,下面是我使用的简单代码: e2e mocks.js angular.module('e2e-mocks', ['ngMockE2E']) .run(function ($httpBackend, OffersMock, RewardsMock) { // Mock list of offers $httpBackend.when
angular.module('e2e-mocks', ['ngMockE2E'])
.run(function ($httpBackend, OffersMock, RewardsMock) {
// Mock list of offers
$httpBackend.whenGET('api/offers').respond(OffersMock.get());
// Mock list of rewards
$httpBackend.whenGET('api/rewards').respond(RewardsMock.get());
// For everything else, don't mock
$httpBackend.whenGET(/^\w+.*/).passThrough();
$httpBackend.whenPOST(/^\w+.*/).passThrough();
});
angular.module('app').requires.push('e2e-mocks');
如您所见,若我将此脚本添加到web页面,则不再需要使用后端服务器获取数据。我正在从OffersMock服务获取数据。我在测试中也使用此服务
问题在于路径。
以下是我的文件结构:
.
|____app
| |____index.html
| |____scripts
| | |____app.js
| | |____controllers
| | | |____main.js
| | | |____OffersCtrl.js
| | |____services
| | | |____OffersService.js
| |____styles
| | |____main.scss
| |____views
| | |____offers.html
| | |____rewards.html
|____karma.conf.js
|____test
| |____backend
| | |____e2e-mocks.js
| |____mock
| | |____OffersMock.js
| | |____RewardsMock.js
| |____spec
| | |____controllers
| | | |____OffersController.js
| | |____services
| | | |____OffersService.js
我无法将我的e2e mocks.js文件添加到index.html,因为应用程序文件夹是我的web应用程序的根目录。如果将测试文件夹移动到应用程序文件夹,则可以在生产服务器中查看我的所有测试
问题是:
我如何在开发和部署应用程序时向应用程序添加一些模拟脚本,而不必手动从构建的应用程序中删除测试代码
你知道怎么做吗?也许你知道它的一些模式或者你个人的最佳实践?任何建议都是有用的。谢谢:)如果您对本地模拟使用特定的命名模式,则可以在生成过程中使用Grunt的命名模式排除这些文件 例如,如果您有如下配置:
//from the sample gruntfile
concat: {
options: {
separator: ';'
},
dist: {
src: ['src/**/*.js'],
dest: 'dist/<%= pkg.name %>.js'
}
}
(最小的)缺点是,对于可能错误地将本地开发模拟移动到部署目标的每个Yeoman任务,您都需要这样做
concat: {
options: {
separator: ';'
},
dist: {
src: ['src/**/*.js', '!src/**/*-mymocks.js'],
dest: 'dist/<%= pkg.name %>.js'
}
}