`
darrenzhu
  • 浏览: 804429 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

测试Angular应用的工具

阅读更多
参考https://docs.angularjs.org/guide/unit-testing

Jasmine
Jasmine is a behavior driven development framework for JavaScript that has become the most popular choice for testing Angular applications. Jasmine provides functions to help with structuring your tests and also making assertions. As your tests grow, keeping them well structured and documented is vital, and Jasmine helps achieve this.

In Jasmine we use the describe function to group our tests together:

describe("sorting the list of users", function() {
  // individual tests go here
});
And then each individual test is defined within a call to the it function:

每一个单独的测试叫做it: individual test

describe('sorting the list of users', function() {
  it('sorts in descending order by default', function() {
    // your test assertion goes here
  });
});
Grouping related tests within describe blocks and describing each individual test within an it call keeps your tests self documenting.

Finally, Jasmine provides matchers which let you make assertions:

describe('sorting the list of users', function() {
  it('sorts in descending order by default', function() {
    var users = ['jack', 'igor', 'jeff'];
    var sorted = sortUsers(users);
    expect(sorted).toEqual(['jeff', 'jack', 'igor']);
  });
});
Jasmine comes with a number of matchers that help you make a variety of assertions. You should read the Jasmine documentation to see what they are. To use Jasmine with Karma, we use the karma-jasmine test runner.


angular-mocks
Angular also provides the ngMock module, which provides mocking for your tests. This is used to inject and mock Angular services within unit tests. In addition, it is able to extend other modules so they are synchronous. Having tests synchronous keeps them much cleaner and easier to work with. One of the most useful parts of ngMock is $httpBackend, which lets us mock XHR requests in tests, and return sample data instead.


Karma
Karma is a JavaScript command line tool that can be used to spawn a web server which loads your application's source code and executes your tests. You can configure Karma to run against a number of browsers, which is useful for being confident that your application works on all browsers you need to support. Karma is executed on the command line and will display the results of your tests on the command line once they have run in the browser.

Karma is a NodeJS application, and should be installed through npm. Full installation instructions are available on the Karma website.
分享到:
评论

相关推荐

    Angular 应用技巧总结

    (10) 测试Angular应用 使用工具如Karma和Jasmine进行单元测试,Protractor进行端到端测试。确保编写可测试的代码,例如将业务逻辑封装在服务中,方便测试。 以上只是一部分Angular应用技巧,Angular还有更多高级...

    Minimus一个全功能生产就绪的Angular6天气应用教程项目

    这些都是Angular应用的基础构造块,理解它们对于构建任何Angular应用至关重要。 2. **Angular CLI**:Angular命令行工具(CLI)是一个强大的开发辅助工具,能快速生成新组件、服务等,并自动配置项目。在Minimus...

    angular_pawa

    "angular_pawa"这个主题指的是一个与Angular框架相关的项目或者...这个压缩包提供了一个完整的开发环境,便于学习、开发和测试Angular应用。对于学习Angular或者研究历史版本的开发实践来说,这是一个宝贵的资源。

    Angular6.0文档+实例应用

    - **测试**: 利用 Angular 提供的测试工具如 TestBed 和 ComponentFixture 进行单元测试和端到端测试。 通过深入了解这些知识点及其实际应用,开发者可以更加熟练地掌握 Angular,构建出高质量的 Web 应用。

    angular-devtools

    "Angular DevTools" 是一套专为 Angular 应用开发者设计的强大工具,它提供了一整套浏览器开发者工具扩展,用于优化和调试基于 Angular 框架的应用程序。Angular 是由 Google 维护的一个开源 JavaScript 框架,广泛...

    Angular 6 for Enterprise Ready Web Applications 2018年9月最新版 Angular6 企业web应用开发

    模块(Module)是Angular应用的基本构建块,它允许我们组织相关的组件、指令和服务,使代码更易于理解和维护。在企业级应用中,模块化设计可以提高代码的复用性和可测试性。 依赖注入(Dependency Injection,DI)...

    Learning Angular Second Edition

    除了基础概念,本书还可能包含一些关于Angular CLI(Command Line Interface)的讨论,Angular CLI是一个强大的命令行工具,可以用来快速搭建、测试和部署Angular应用。它简化了项目的创建、配置和运行过程,极大地...

    SmartAdmin 最新 1.8.2 Angular 版

    4. **app**:这是Angular应用的核心部分,包含了模块(modules)、服务(services)、组件(components)、指令(directives)、管道(pipes)等。其中,`app.module.ts`是主模块,定义了应用的依赖和启动组件。其他...

    angular资源

    首先,Angular应用程序是由组件组成的,组件之间相互通信是Angular应用程序的核心特征之一。通过父子组件的结构,数据可以很容易地在组件间传递。Angular使用输入(Input)和输出(Output)来实现组件间的数据流动。...

    迈向angular 2 + 文档

    - **概览**:快速入门中的示例通常会包含一个实际的Angular应用结构,通过点击在线示例链接可以在Plunker中互动地测试这些示例。这有助于开发者直观地理解Angular的运作方式。 - **构建应用**:构建应用的流程通常...

    大漠穷秋 angular2 视频PPT

    9. **9-第九节:前端自动化测试.pptx**:涵盖Angular应用的测试策略,如使用Jasmine和Karma进行单元测试和端到端测试。 10. **10-第十节:前端自动化测试.pptx**:这部分可能进一步深入到持续集成(CI)和持续部署(CD...

    angular核心

    组件是Angular应用中代码与视图的最小单元,通过组件可以将页面拆分成独立且可重用的部分。模块是组织Angular应用的一种方式,它可以帮助开发者更好地管理应用的各个部分。每个Angular应用至少需要有一个根模块,...

    angular中文文档

    4. **组件化**:Angular应用程序是由组件构成的,每个组件都有自己的视图和控制器,这种模块化的结构让大型应用的组织变得清晰。 5. **路由**:Angular Router允许你在不同的组件间进行导航,创建复杂的单页面应用...

    ng-book The Complete Guide to Angular 5

    另外,本书提到了Angular CLI(命令行界面),这是一个用于Angular项目的命令行工具,它提供了创建、维护和测试Angular应用的一系列功能。Angular CLI的使用贯穿于整个开发过程,从初始化项目到运行代码示例,再到...

    angular开发实战demo

    - `src`:这个目录是Angular应用的主要源代码存放地,通常包含`app`子目录,用于存放应用组件、服务和其他模块。此外,还有`assets`存放静态资源,`environments`定义不同环境的配置,`index.html`作为应用的入口...

Global site tag (gtag.js) - Google Analytics