- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个使用 yeoman 生成的 angularjs 应用程序。在 karma.conf.js 中是对 test/mock/**/*.js 的引用。我很难弄清楚,我是如何使用这个文件夹的。目前我有一个简单的服务:
'use strict';
angular.module('tvcalApp')
.factory('Series', function ($resource) {
return $resource('/search/:search');
});
和一个测试
'use strict';
var $httpBackend;
describe('Service: Series', function () {
// load the service's module
beforeEach(module('tvcalApp'));
// instantiate service
var Series;
beforeEach(inject(function (_Series_) {
Series = _Series_;
}));
beforeEach(inject(function ($injector) {
var url_get = '/search/The%20Simpsons';
var response_get = [{"seriesid": "71663"}];
$httpBackend = $injector.get('$httpBackend');
$httpBackend.whenGET(url_get).respond(response_get);
}));
it('should return a list if search for The Simpsons', function () {
var res = Series.query({search: 'The Simpsons'});
$httpBackend.flush();
expect(res[0].seriesid === 71663);
});
});
这是有效的。但我想知道我是否可以使用 karma.conf.js 中的模拟文件夹来实现模拟功能。是否可以将 mock 部分移动到 mock 文件夹中并将其用于所有单元测试?
我找不到此文件夹的任何示例或文档。有人可以指点我如何使用模拟文件夹的示例或文档吗?
最佳答案
基本上我在 angular-mocks.js 中做了这样的事情:
假设可能应用程序称为 ql。我有一个我想模拟的登录服务:
mocks/servicesMock.js 看起来像这样:
'use strict';
var ql = {};
ql.mock = {};
ql.mock.$loginServiceMockProvider = function() {
this.$get = function() {
var $service = {
login: function() { }
};
return $service;
};
};
angular.module('qlMock', ['ng']).provider({
$loginServiceMock: ql.mock.$loginServiceMockProvider
});
然后在我的测试中我可以注入(inject) $loginServiceMock:
'use strict';
describe('LoginController tests', function () {
// load the controller's module
beforeEach(module('ql'));
// load our mocks module
beforeEach(angular.mock.module('qlMock'));
var loginController,
loginServiceMock,
scope;
// Initialize the controller and a mock scope
// $loginSericeMock will be injected from serviceMocks.js file
beforeEach(inject(function ($controller, $rootScope, $loginServiceMock) {
scope = $rootScope.$new();
loginServiceMock = $loginServiceMock;
loginController = $controller('LoginController', {
$scope: scope,
loginService: loginServiceMock
});
}));
});
关于javascript - 在 yeoman angularjs 中使用模拟文件夹进行 karma 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674554/
我正在尝试全新安装 Yeoman,但在我尝试使用以下命令将其删除后,Yo 命令仍然存在: sudo npm remove -g yeoman npm remove -g yeoman sudo npm
当 yeoman 以嵌入形式运行时,我无法运行子生成器。 integrating yeoman in other tools 的文档提供这个例子: var yeoman = require('yeom
使用最新的 yeoman 更新 1.0,我们是否能够更改创建目录结构的方式?例如...如果我想在根目录而不是“/app”文件夹中创建我的文件,这可能吗?另外,如果我们想将我们的 Assets 文件夹命
我喜欢 Yeoman 的功能,例如 Package Manager (Bower)、Livereload 集成、Compass 等。 因此,我想用它来处理我的公共(public)网站。但是,我不想使用
我是创建 Yeoman Generator 的新手。我使用了 generator-generator 来让我开始,我经历了创建它、测试和把它全部搞定的过程。 在创建 yo 生成器的 tuts 中,他们
为什么不推荐 Yeoman 在他们的网站上写网站时建立网站 http://yeoman.io/road.html Clearing up misconceptions […] - Not recomm
尝试执行yo angular时出现以下错误: 在脚手架中,还有其他错误消息。 我做了: npm install -g yonpm install -g generator-angularyo angu
我试过console.log('message') ,但它以黑色返回消息。 有没有办法在生成器中记录彩色消息? 最佳答案 对于查看此问题的新用户 console.log();根据 Documentat
我正在为一个相当典型的节点应用程序构建一个自耕农生成器: / |--package.json |--.gitignore |--.travis.yml |--README.md |--app/
几个月前,我使用生成器角度来搭建一个项目,整个生态系统(karma、Node 版本、grunt 包)已经取得了相当大的进展。我在运行测试、构建东西等方面不断遇到问题。 我知道我可以使用 nvm 降级我
我不小心安装了一个我不想要的生成器。 我找不到任何方法来删除它。 我应该怎么做才能实现这个目标? 最佳答案 生成器只是普通的 npm 模块,因此您可以使用以下命令删除它 npm uninstall -
我创建了一个 Yeoman 生成器并希望我的团队使用它。 如果我在 Github 上更新我的生成器会发生什么?他们在本地安装了旧版本的生成器。他们是否总是需要重新安装才能获得最新版本? 团队成员不知道
我正在构建一个生成器,最后我需要在应用程序的某个目录中进行npm install,我尝试了以下操作: this.spawnCommandSync('cd', [this.destinationRoot
在使用 Yeoman 搭建脚手架时,我想用模板替换应用程序中的部分内容。一切似乎都很顺利,但我在脚手架期间遇到了此冲突错误。 这个. 模板( '条件文件/html/_signup.email.html
我是一名 javascript 初学者,通过遵循编写第一个生成器教程并阅读其他生成器代码,我已经成功地使用我的第一个生成器实现了这一目标。 我尝试了各种方法来使其正常工作,但都失败了,如果有人能指出我
我正在为 yeoman 使用角度生成器,目前默认行为是我这样做的时候 yo angular:controller testController 我创建了 2 个文件 create app\script
所以我一直在为我的项目使用 yeoman.io,并且我为我的图像设置了文件夹结构。但是当我构建它时,我的文件的文件名发生了变化。 我什至使用: $ yeoman build:text 因为我只想缩小我
如何通过自耕农生成器创建一个空目录? 我看过 mem-fs-editor ,但据我所知,只有在创建子文件时才会创建目录。我试过在子目录中创建一个文件,然后删除该文件,但这不起作用(我假设因为 mem-
我正在构建一个生成器,其中部分包含来自使用 exec 创建的另一个项目的脚手架.根据用户输入,我需要移动或删除此脚手架的一部分。 现在我正在用节点的 fs.child_process.spawn 做这
我正在跟踪yeoman.io上列出的示例Yeoman工作流程: npm install -g generator-angular generator-karma # install generato
我是一名优秀的程序员,十分优秀!