标签: squirejs

Squire.js与Jasmine和RequireJS的例子

我想写JS测试.生产代码使用RequireJS编写.我找到了一个名为Squire.js的测试库:https://github.com/iammerrick/Squire.js/

来自Squire.js网站

Run生成一个函数,该函数将接收完成回调并在测试功能完成后执行它.对于使用回调处理异步的框架特别有用.这是Mocha.js的一个例子.Jasmine可以使用Jasmin.Async提供这种回调方法."

我不知道如何使用Jasmine async.一个小例子非常有用.

unit-testing requirejs squirejs

19
推荐指数
1
解决办法
4453
查看次数

乡绅正在打破其他测试

我正在使用Karma,Jasmine,Jasmine.Async,Sinon和Chai.

好消息......这个测试工作正常.依赖被嘲笑,间谍被调用,故意破坏测试对象导致测试失败.

define(['chai', 'squire'], function (chai, Squire) {

    var should = chai.should(),
        async = new AsyncSpec(this),
        subject, injector = new Squire();

    describe('EventsView', function () {

        describe('when an event is clicked', function () {
            var mockModel, stub;

            async.beforeEach(function (done) {
                setFixtures('<div id="screen"></div>');

                mockModel = {
                    toJSON: function () {
                        return {
                            dimensions: "hu1 vu2",
                            events: [{
                                date: "8/29/2013",
                                id: "8923",
                                title: "Fancy Show",
                                venue: "Lovely venue",
                            }, {
                                date: "8/29/2013",
                                id: "9034",
                                title: "Exciting Game",
                                venue: "Lovely stadium"
                            }],
                            id: 3566, …
Run Code Online (Sandbox Code Playgroud)

javascript requirejs jasmine karma-runner squirejs

8
推荐指数
2
解决办法
1170
查看次数

Squire.js在使用商店时不会替换假依赖

我正在尝试将Squire.js作为RequireJS的依赖加载器.使用完全正常的Web浏览器运行单元测试.我想用来store处理我的嘲笑.但无法阻止Squire加载实际模块.

mock 工作良好:

define(['lib/squire'], function (squire) {
    var injector = new squire();

    injector
    .mock('modules/dependency', {
        run: function () {
            console.log("fake dependency run");
        }
    })
    .require(['modules/module-under-test'], function (module) {
        module.run();
    });
});
Run Code Online (Sandbox Code Playgroud)

控制台输出

module under test loaded       module-under-test.js:2
module under test run          module-under-test.js:5
fake module run                module-test.js:8
Run Code Online (Sandbox Code Playgroud)

但是当我这样使用时store:

define(['lib/squire'], function (squire) {
    var injector = new squire();

    injector
    .store('modules/dependency')
    .require(['modules/module-under-test', 'mocks'], function (module, mocks) {
        mocks.store["modules/dependency"] = {
            run: function () {
                console.log("fake dependency run");
            }
        }; …
Run Code Online (Sandbox Code Playgroud)

javascript mocking requirejs squirejs

5
推荐指数
1
解决办法
1218
查看次数

Squirejs导致随机测试间歇性地失败或根本不运行

我们正在使用Karma和Mocha以及Squire来模拟使用RequireJs加载的依赖项.没有Squire,我们的测试运行正常,但是一旦我们初始化Squire对象,一切都开始破坏:

define(['squire'], function (Squire) {
    var injector = new Squire(); // comment this out and everything works again
});
Run Code Online (Sandbox Code Playgroud)

我们发现,有时Karma报告没有运行任何测试(即使测试函数内部设置的断点会被击中),有时它会报告不应该失败的随机错误.卡玛只是有点疯狂.

如果没有我的测试疯狂,我如何使用Squire?

requirejs karma-runner squirejs

4
推荐指数
1
解决办法
930
查看次数

Using RequireJS with Mocha and SquireJS on node

I am trying to use RequireJS in node, and found difficulties with path issues.

Here is a simple foo method that returns "foo"

$ cat src/foo.js 

define([], function() {

    var foo = function() {
        return "foo";
    };

    return { foo:foo};
});
Run Code Online (Sandbox Code Playgroud)

Here is bar that requires foo, but it works only when specifying relative path. Is that how it's supposed to be?

$ cat src/bar.js
define(['./foo.js'], function(foo) {

    var bar = function() {
        return foo.foo().replace("foo","bar");
    };

    return { bar : …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js requirejs squirejs

1
推荐指数
1
解决办法
1097
查看次数