我想在一些使用PouchDB库的js上编写单元测试。 为了使用PouchDB,我需要启动一个简单的HTTP服务器*。
我的文件结构是 / public(所有提供的html和js) / specs(我所有的js和ruby规范文件)
如果我要在/ public文件夹中启动服务器(如rackup),我将无法访问/ specs文件夹中的规范(因为/ public文件夹将成为Web服务器的根目录)
如果我要在/ specs文件夹中启动rackup,我将无法访问我想在/ public文件夹中测试的js文件(因为/ specs文件夹将成为Web服务器的根目录)。
我想如果我重新构建它以便我的规格在我的公共文件夹中,这可能会起作用。但这看起来很笨重。我想我也可以复制我在specs文件夹中测试的js文件。再次,这看起来很笨重。当然,有一种更好的方法可以做到这一点。
*当我尝试在没有运行简单http服务器的情况下执行以下简单代码时,出现错误:
var db = new PouchDB('todos');
db.put({_id : '001' });
我明白了:
请求处于“已拒绝”状态,“操作数i”中的“结果=类型错误:无效”
使用“python -m SimpleHTTPServer”使用http服务器尝试相同的代码将正常工作(请求将被完成)。
答案 0 :(得分:0)
我最终以半笨重的方式做到了这一点。我创建了一个sym链接,指向公共文件夹中我想要的资源,以便将它们注入到规范中。然后我可以在规范中运行一个服务器来正确测试pouchDB
答案 1 :(得分:0)
为了使用PouchDB,我需要启动一个简单的HTTP服务器。
我不确定您是如何使用PouchDB的(在浏览器中的Node?上?PouchDB Server?),但您不需要HTTP服务器来运行它。您实际上可以交换所需的后端:CouchDB,LevelDB,IndexedDB或WebSQL。
还有一个可以在Node和we're working on making it a browser plugin too中使用的内存后端,因此应该是测试的理想选择。
E.g。这是您支持HTTP的邮袋:
var db = new PouchDB('http://localhost:5984/mydb');
这是你当地的邮袋:
var db = new PouchDB('myLocalDb');
这就是你的内存中的Pouch(现在只适用于Node):
var db = new PouchDB('myInMemoryDb', {db: require('memdown')});
这有帮助吗?