小编Bla*_*oat的帖子

单元测试应放在Meteor中的哪个位置?

我的测试可以在没有Meteor运行的情况下存在吗?

我刚刚开始了我的第一个Meteor项目,并开始使用Mochashould.js编写单元测试.虽然mocha运行没有问题,但测试阻止Meteor启动,因为它使用节点require 而不是__meteor_bootstrap__.require(完整错误消息)有问题.

话虽这么说,Meteor不应该运行我的测试!根据Meteor文档,代码只能放在客户端,服务器或两者上.单元测试套件不属于这些类别,并且我不是唯一被Meteor缺乏定位自动化测试位置的人所困惑的.

现在,我的测试保存在server/test/,每个文件的内容都包含在块中:

if (typeof(Meteor) === 'undefined') { ... }
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但感觉并不优雅.您对使用Meteor应用程序构建测试有任何其他建议吗?

更新:代替Meteor文档中的显式指令,我遵循Rails文件夹约定(第4段),使用一个名为test存储我的测试资产的文件夹.后来server/test我把它移到了,因为我不希望它加载到客户端上.

unit-testing mocha.js meteor should.js

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

我的页面是否从浏览器缓存中加载?

我在页面上有一个"新项目"徽章,我想立即更新页面从缓存中加载(即,当点击"返回"或"转发"返回此页面时).完成此任务的最佳方法是什么?

设置非常简单.应用程序的布局每8秒查找一个新项目,并相应地更新徽章+项目列表.

$(function() {
    setInterval( App.pollForNewItems, 8000 );
});
Run Code Online (Sandbox Code Playgroud)

当有人导航离开此页面以查看项目的详细信息时,可能会发生很多事情.在任何用户查看之前,事情都是"新的" ,并且应用程序可能会有多个用户同时使用它(用于呼叫中心或支持服务单的工作流程类型).

为了确保徽章始终是最新的,我有:

$(window).bind('focus load', function ( event ) {
    App.pollForNewItems();
});
Run Code Online (Sandbox Code Playgroud)

..虽然这有效,但只有在从缓存加载页面时,轮询"加载"上的新项目才有用.是否有可靠的跨浏览器方式来判断是否正在从缓存加载页面?

javascript jquery javascript-events browser-cache browser-history

14
推荐指数
3
解决办法
6704
查看次数

Webkit忽略包含行框的内联块的垂直对齐

当Webkit(Safari,Chrome)遇到内联块时...

  1. line-height指定高度
  2. 内容使用多个线框呈现

... inline-block元素忽略指定的vertical-align.

为了帮助说明问题,我有一个小测试用例:http: //arther.net/lab/webkit-vertical-align-test.html#test


Firefox 3.6,Opera 10.53和IE7 +将这些内联块视为内联元素,垂直对齐按预期工作.Webkit浏览器(和Opera 10.10)在这种情况下将内联块视为块级元素,因此忽略vertical-align.那么,谁是对的,谁是错误的?

我可以看到这种情况.一方面,您可以说所有内联元素 - 甚至是内联块 - 都应该在包含的行框中正确定位vertical-align.另一方面,内联元素通常定义一个内联框,并且没有自己的行框.包装多个线框的任何东西都应该是块级元素.在这种情况下,内联块应该被视为一个块,因此会忽略vertical-align.

鉴于当前的行为,我认为以下之一是真的:

  • 这是一个Webkit错误
  • 这是所有其他渲染引擎中的错误
  • 关于处理这种特殊情况的规范含糊不清,正在采取不同的方法

如果有人能就这个问题提供一些澄清以及预期的行为应该是什么,我将不胜感激.

css webkit vertical-alignment

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

是否有完整的PHP命令行解析器?

我正在寻找类似于Thor的命令解析库,但对于PHP.

更具体地说,我想要一些可以......

  • 处理子命令输入,例如 git remote add <url>
  • 将选项与其值相关联,例如my-command --some-option='value'创建一个键值对array( 'some-option' => 'value' )
  • 从传递给它的配置生成使用/帮助信息
  • processes -short和--long选项
  • 图书馆正在维护中
  • 必须是PHP(否则,我会使用Thor)

到目前为止,我所看到的解决方案都没有令人满意.

最接近标记的是PEAR的Console_Getargs,尽管没有维护.

pear命令使用Console_Getopt,但它们执行大量手动处理以实现前三个要求中的功能.

PHP getopt()无法处理子命令,似乎没有任何其他内置方法可以使用这个功能.

是否有符合我可能错过的标准的PHP库?

php command-line parsing command-line-interface

7
推荐指数
2
解决办法
9150
查看次数

Node.js的基本身份验证和解析

我目前正在使用NodeJS开发RESTful Web服务并进行解析.

我已经为数据库启动并运行了node-mysql,但我也希望实现HTTP Basic身份验证.

我只用Apache和一个.htaccess文件做了一次.

但是在这里,网络服务器带来了解决方案,我这样开始:

var server = restify.createServer({
  name: 'my webservice'
});
Run Code Online (Sandbox Code Playgroud)

在restify文档(http://mcavage.me/node-restify/#Bundled-Plugins)中列出了一个Authentication Parser插件,但我无法弄清楚如何使用它.

req.username即使我使用,该值也始终设置为匿名http://user:pass@url....

最好的办法是,如果我可以将它与.htpasswd文件一起使用来存储/访问用户并通过.

有谁知道如何用restify或其他模块实现这个?

javascript basic-authentication node.js restify

6
推荐指数
2
解决办法
5230
查看次数