testing方法调用

我是一个黑客(即编写一些代码,并手动testingfunction),但现在我想添加一些更多的结构,我的编码通过添加一些unit testing,并遵循TDD方法。 但我正在努力构build一个validation方法的unit testing。 所以任何见解,将不胜感激。

我想testing我的readDirectories方法,但由于它是asynchronous的,我将不得不使用setTimeout – 但是我的testing不断返回一个错误:

test.js

test('The readDirectories method', (t) => { const xyz = new abc('/foo/bar/', '/foo/baz/'); const expected = ['/foo/bar/Download', '/foo/bar/HardDrive' ]; xyz.readDirectories(xyz.source) setTimeout(() => { let actual = xyz.directories; t.equal(actual, expected, 'should produce an array of subdirectories'); }, 10); }); 

安慰

 operator: equal expected: |- [ '/foo/bar/Download', '/foo/bar/HardDrive' ] actual: |- [ '/foo/bar/Download', '/foo/bar/HardDrive' ] at: Timeout.setTimeout (/home/user/Documents/app/tests/testModel.js:33:7) 

看过磁带上的例子,我相信我正在做的一切正确…但是,然后我可以再做一些愚蠢的事情! 我如何让我的testing通过?

原来由于.equaltesting,testing失败了。 .equaltesting我的结果是两个数组,而.deepEqualtesting两个数组具有相同的结构和嵌套值。

从磁带网站:

t.equal()

断言实际===期望与可选的描述味精。

t.deepEqual()

断言实际和期望具有相同的结构和嵌套值,使用节点的deepEqual()algorithm,在叶节点上进行严格比较(===),并且使用可选的描述信息msg。