小编Roy*_*oyM的帖子

使用mocha的内置承诺支持测试失败的承诺

我应该怎样用mocha和chai测试我的承诺失败了?

我很困惑,因为我最初认为我应该使用'mocha-as-promised',但是该软件包现在已被弃用(我正在使用mocha 2.1.0),建议只使用现在内置的promise测试摩卡.请参阅:https://github.com/domenic/mocha-as-promised

另一篇文章建议废除it()回调的'done'参数 - 不确定我理解为什么,因为我的理解是传递'done'参数是表示测试是异步测试的方式.请参阅:如何使用mocha和chai正确测试承诺?

无论如何,我试图将我的问题减少到下面的代码 - 请帮我修改这个,以便我可以测试我的承诺确实失败了.

it.only("do something (negative test)", function (done) {

  var Q = require('q');

  function makePromise() {
    var deferred = Q.defer();
    deferred.reject(Error('fail'));
    return deferred.promise;
  };

  makePromise()
  .then(done, done);

});
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js node.js promise

9
推荐指数
2
解决办法
1万
查看次数

要使用LoaderManager进行详细视图吗?

我正在构建一个包含2个片段的(主 - 细节)视图:ListFragment和更详细的片段视图.单击列表中的任何项目都会显示详细信息视图.对于ListFragment,我使用的是LoaderManager与CursorLoader,来管理我的查询(我一直在下面的亚历克斯·洛克伍德帖子关于这一主题的优秀指南).

当涉及到显示"详细信息"视图(通过单击列表视图)时,我需要查询相同的内容提供者,并获取单行信息.我不确定如何最好地处理这个问题.

因为我基本上回到了一行,并且可以立即释放光标:

  • 我应该只使用直接的getContentResolver().query()并直接使用游标吗?
  • 使用另一个LoaderManager来管理光标和结果?

android

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

mocha - 如何列出将要执行的文件

我想知道是否有一种方法可以让 mocha 列出它将执行的所有测试。当我使用 mocha --help; 列出它们时,我没有看到任何合理的选项;有几个报告器,但似乎没有一个旨在列出将要处理的文件(或命名将要运行的测试)。

mocha.js

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

测试可读流(开玩笑),延迟推送值

我正在尝试创建一个可读流,其中数据以突发方式到达,数据包之间有延迟(例如在网络读取中)。

我在开玩笑地测试这个时遇到了麻烦。我在下面编写了 2 个测试 两个测试中的第一个有效(因为它向控制台产生输出),但第二个失败 - 也就是说,在控制台上看不到输出。我也尝试过使用 fakeTimers,但似乎没什么区别。任何指针将不胜感激。

测试本身没有依赖性 - 所以代码应该独立运行

const Readable = require('stream').Readable
function sleep(ms) {return new Promise(resolve => setTimeout(resolve, ms))}
const lines = ['line 1\n', 'line 2\nline 3']
function* getIter() {for (let line of lines) {yield line}}

describe ('Iteration', () => {

  it ('read iter values from stream', () => {
    let rs = new Readable, res, iter = getIter()

    while (res = iter.next()) {
      if (res.done) {
        rs.push(null)
        break
      } else {
        rs.push(res.value)
      }
    }
    rs.pipe(process.stdout) …
Run Code Online (Sandbox Code Playgroud)

testing stream node.js jestjs

6
推荐指数
0
解决办法
1009
查看次数

无法取消$ interval返回的链式承诺

如果我使用$ interval创建一个promise,它是可取消的请参阅:http://jsbin.com/jeweke/2/

timer = $interval(intervalFunc, intervalDelay, 10);
timer.then(
  function(res) {console.log('ok', res);},
  function(err) {console.log('err', err);}
);
Run Code Online (Sandbox Code Playgroud)

但是,如果我将承诺链接起来,则返回的承诺不可取消.见:http://jsbin.com/jeweke/1/

timer = $interval(intervalFunc, intervalDelay, 10)
.then(
  function(res) {console.log('ok', res);},
  function(err) {console.log('err', err);}
);
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?这是它应该如何工作吗?

注意 - 这里的例子很容易改编自http://jsfiddle.net/ExpertSystem/fZc3W/

timeout angularjs angular-promise

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

antlr4语法-如何匹配EOF/NL

我如何匹配最后一行末尾没有换行符的文件。当我使用注释行(w/EOF)时,解析器进入看起来像无限循环的状态(即挂起)。

这是语法 - 大部分借用自 tparr 的作品

grammar csv;

prog : row+ ;
row :  field (',' field)* NL;
// row :  field (',' field)* (NL|EOF); // doesn't work

field : STR | QSTR | ; // field can be empty

STR : ~[\n,"]+ ;
QSTR : Q (QQ|~'"')* Q ;
NL : '\n';

fragment QQ : '""' ;
fragment Q : '"' ;
Run Code Online (Sandbox Code Playgroud)

这是相应的数据文件。

Details,Month,Amount
Mid Bonus,June,"$2,000"
,January,"""zippo"""
Total Bonuses,"","$5,000"<EOF is on the same line>
Run Code Online (Sandbox Code Playgroud)

antlr4

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

案例转换大字典词集

我试图匹配字典中的单词,不区分大小写.我最初的方法是这样的:

  1. 阅读词典; 将所有单词转换为小写,存储在集合中.
  2. 检查新单词的成员资格

是否有更好(更有效)的方法来实现这一目标?我是Haskell的新手.

import System.IO
import Data.Text (toLower, pack, unpack)
import Data.Set (fromList, member)

main = do
  let path = "/usr/share/dict/american-english"
  h <- openFile path ReadMode
  hSetEncoding h utf8
  contents <- hGetContents h
  let mySet = (fromList . map (unpack . toLower . pack) . lines) contents
  putStrLn $ show $ member "acadia" mySet
Run Code Online (Sandbox Code Playgroud)

optimization haskell data-structures

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

如何测试异构数据构造函数?

看起来像一个非常基本的问题,但如果我有:

data LogLevel = Info | Warning | Error Int
x = Info
y = Error 13
Run Code Online (Sandbox Code Playgroud)

我可以写

if (x==Info)
Run Code Online (Sandbox Code Playgroud)

但是我如何为类型Error编写测试?

haskell

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