(这里有一个相关的问题: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) 使用Haskell抓取网站的库的当前状态是什么?
我正努力让自己在Haskell中完成更多快速的一次性任务,以帮助提高我对语言的舒适度.
在Python中,我倾向于使用优秀的PyQuery库.在Haskell中有类似简单易用的东西吗?我看过Tag Soup,虽然解析器本身看起来不错,但实际遍历页面并不像其他语言那样好看.
那里有更好的选择吗?
假设我有一个像这样的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)
在这种情况下,路由器在路由匹配时自动绘制路由器视图元素中的组件.
我的问题是,在这种情况下,我如何将道具传递给组件?
我想使用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类似的方法吗?
我正在尝试理解io.BytesIO的write()和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 ×2
angularjs ×1
bytesio ×1
haskell ×1
html-parsing ×1
jasmine ×1
redis ×1
redis-py ×1
vue-router ×1
vue.js ×1
web-scraping ×1