小编Rob*_*ert的帖子

如何使用Jasmine测试AngularJS服务?

(这里有一个相关的问题:Jasmine测试没有看到AngularJS模块)

我只是想在没有引导Angular的情况下测试服务.

我看了一些例子和教程,但我不会去任何地方.

我只有三个文件:

  • myService.js:我在哪里定义AngularJS服务

  • test_myService.js:我为服务定义了Jasmine测试.

  • specRunner.html:具有正常jasmine配置的HTML文件,我导入前两个其他文件以及Jasmine,Angularjs和angular-mocks.js.

这是服务的代码(当我没有测试时,它按预期工作):

var myModule = angular.module('myModule', []);

myModule.factory('myService', function(){

    var serviceImplementation   = {};
    serviceImplementation.one   = 1;
    serviceImplementation.two   = 2;
    serviceImplementation.three = 3;

    return serviceImplementation

});
Run Code Online (Sandbox Code Playgroud)

当我试图孤立地测试服务时,我应该能够访问它并检查它们的方法.我的问题是:如何在不引导AngularJS的情况下在我的测试中注入服务?

例如,我如何测试使用Jasmine的服务方法返回的值,如下所示:

describe('myService test', function(){
    describe('when I call myService.one', function(){
        it('returns 1', function(){
            myModule = angular.module('myModule');
                    //something is missing here..
            expect( myService.one ).toEqual(1);
        })

    })

});
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs

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

使用Haskell进行网页搜索

使用Haskell抓取网站的库的当前状态是什么?

我正努力让自己在Haskell中完成更多快速的一次性任务,以帮助提高我对语言的舒适度.

在Python中,我倾向于使用优秀的PyQuery库.在Haskell中有类似简单易用的东西吗?我看过Tag Soup,虽然解析器本身看起来不错,但实际遍历页面并不像其他语言那样好看.

那里有更好的选择吗?

haskell html-parsing web-scraping

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

将道具传递给Vue-router实例化的Vue.js组件

假设我有一个像这样的Vue.js组件:

var Bar = Vue.extend({
    props: ['my-props'],
    template: '<p>This is bar!</p>'
});
Run Code Online (Sandbox Code Playgroud)

我希望在vue-router中的某些路由匹配时使用它:

router.map({
    '/bar': {
        component: Bar
    }
});
Run Code Online (Sandbox Code Playgroud)

通常,为了将'myProps'传递给组件,我会做这样的事情:

Vue.component('my-bar', Bar);
Run Code Online (Sandbox Code Playgroud)

并在HTML中:

<my-bar my-props="hello!"></my-bar>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,路由器在路由匹配时自动绘制路由器视图元素中的组件.

我的问题是,在这种情况下,我如何将道具传递给组件?

vue.js vue-router

40
推荐指数
4
解决办法
4万
查看次数

非阻塞Redis pubsub可能吗?

我想使用redis'pubsub来传输一些消息,但不希望被阻止使用listen,如下面的代码:

import redis
rc = redis.Redis()

ps = rc.pubsub()
ps.subscribe(['foo', 'bar'])

rc.publish('foo', 'hello world')

for item in ps.listen():
    if item['type'] == 'message':
        print item['channel']
        print item['data']
Run Code Online (Sandbox Code Playgroud)

最后一for节将阻止.我只是想检查一个给定的通道是否有数据,我该如何做到这一点?有check类似的方法吗?

python redis redis-py

26
推荐指数
5
解决办法
3万
查看次数

Python io.BytesIO的write(),read()和getvalue()方法如何工作?

我正在尝试理解io.BytesIOwrite()read()方法.我的理解是我可以使用io.BytesIO,因为我会使用File对象.

import io
in_memory = io.BytesIO(b'hello')
print( in_memory.read() )
Run Code Online (Sandbox Code Playgroud)

上面的代码将按预期返回b'hello',但下面的代码将返回一个空字符串b''.

import io
in_memory = io.BytesIO(b'hello')
in_memory.write(b' world')
print( in_memory.read() )
Run Code Online (Sandbox Code Playgroud)

我的问题是:

- io.BytesIO.write(b' world')到底做了什么?

- io.BytesIO.read()io.BytesIO.getvalue()有什么区别

我假设答案与io.BytesIO是一个流对象有关,但我不清楚大局.

python bytesio

8
推荐指数
3
解决办法
3835
查看次数