没有mock的Angular测试
Angular testing without mocked $http
我有一个REST客户端,作为angularJS应用程序的一部分,我想为它写测试;我尝试了Jasmine(在$httpBackend上使用passthrough),但无法让它与真正的端点交谈(这是一个要求)。
有谁知道一个合理的库允许这样做吗?或者另一种方法,让茉莉屈服?
你需要注入第一个$httpbackend
describe('MyController', function() {
var $httpBackend, $rootScope, createController, authRequestHandler;
// Set up the module
beforeEach(module('MyApp'));
beforeEach(inject(function($injector) {
// Set up the mock http service responses
$httpBackend = $injector.get('$httpBackend');
// backend definition common for all tests
authRequestHandler = $httpBackend.when('GET', '/auth.py')
.respond({userId: 'userX'}, {'A-Token': 'xxx'});
// Get hold of a scope (i.e. the root scope)
$rootScope = $injector.get('$rootScope');
// The $controller service is used to create instances of controllers
var $controller = $injector.get('$controller');
createController = function() {
return $controller('MyController', {'$scope' : $rootScope });
};
$httpBackend.when('GET', "/api/rest/").respond(data_to_respond);
}));
下一步写测试用例
it('getTypes - should return 3 car manufacturers', function () {
service.getTypes().then(function(response) {
//expect will be here
});
$httpBackend.flush();
});
相关文章:
- 测试Angular Service解决错误回调中的promise
- 单元测试Angular自举代码
- 测试angular js指令
- 测试angular服务内部方法调用
- 如何使用业力和ng-scenario测试Angular/Umbraco混合应用程序
- 设置 Jasmine & Karma 来测试 Angular
- Karma 单元测试 Angular JS 指令与 externalUrl
- 如何使用Jasmine测试Angular Factory对象
- 单元测试Angular+Browserify+Gulp和Jasmine
- 测试Angular.js控制器,而不使用Jasmine嘲笑工厂
- 如何使用一个函数测试Angular控制器,该函数可以在不嘲笑AJAX调用的情况下进行AJAX调用
- 混合$q和ES6时测试Angular承诺
- 用Gulp摩卡测试Angular:“;窗口未定义”;
- 使用Kendo Grid/Datasource的单元测试Angular Controller
- 如何在e2e测试Angular Protractor的标签中添加文本
- 用Jasmine单元测试测试Angular模块
- 如何在指令link函数中单元测试Angular的routechangessuccess
- 测试Angular的$emit和$on事件
- Karma/Jasmine用控制器模块测试Angular
- 单元测试angular引导模态服务