【问题标题】:Jasmine Tests in a Durandal AppDurandal 应用程序中的 Jasmine 测试
【发布时间】:2013-11-28 03:47:47
【问题描述】:

场景
我正在为我正在编写的基于 Durandal 的应用程序编写一些 jasmine 测试。 Durandal 文档建议编写测试的方式类似于

视图模型

 define([
        'knockout',
        'plugins/router',
        'services/unitofwork',
        'services/logger',
        'services/errorhandler',
        'services/config'
    ],
        function (ko, router, unitofwork, logger, errorhandler, config) {
            var uow = unitofwork.create();
            var searchTerm = ko.observable();
            var results = ko.observableArray([]);
            var search = function () {
              uow.myySearch(searchTerm).then(function (data) {
                results(data);
                logger.log(data.length + ' records found', '', 'myViewModel', true);
              });
            };
            var vm = {
              search : search,
              searchTerm : searchTerm,
              results : results
            };
    });

测试

define(['viewmodels/myViewModel'], function (myViewModel) {
    describe('Stuff im testing', function(){
        it('returns true', function () {
            expect(true).toBe(true);
        });
    });
});

对于我的大多数测试来说,这很有效。

问题
如何模拟/存根/伪造已传递到 ViewModel 的模块。例如 UnitOfWork 模块,它总是返回一组标准数据。

【问题讨论】:

    标签: unit-testing requirejs jasmine durandal


    【解决方案1】:

    对于单元测试,请查看 https://github.com/iammerrick/Squire.js/ requirejs 的依赖项模拟程序。 How can I mock dependencies for unit testing in RequireJS? 中描述了另一种使用 require 上下文的技术。

    对于集成测试,您可能会查看 http://saucelabs.com(基于硒)之类的内容。

    对于一些有助于在 phantomjs|browser 中设置单元测试的繁重任务,请参阅https://github.com/RainerAtSpirit/HTMLStarterKitPro(免责声明:我是 repo 的维护者)。我很想看到一些模型集成,所以如果您愿意,请发送拉取请求。

    【讨论】:

    • 感谢您的链接。我会检查出来的。
    【解决方案2】:

    看看这个 https://github.com/danyg/jasmine-durandal

    这是我正在开发的一个库,几天后也可以测试小部件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 2015-03-21
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多