ここでは、Mocha と Coffeescript/Javascript で明らかな何かが欠けています。
私はというファイルを持っています/static/js/
。ss.coffee
それは非常に単純で、関数は1つだけです:
function sortRowCol(a, b) {
if (a.r == b.r)
if (a.c == b.c)
return 0;
else if (a.c > b.c)
return 1;
else return -1;
else if (a.r > b.r)
return 1;
else return -1;
}
関数は正しく動作しますが、今日このプロジェクトのテストを開始する必要があると判断したため、mocha テスト ファイルを作成しました。
require "../static/js/ss.coffee"
chai = require 'chai'
chai.should()
describe 'SS', ->
describe '#sortRowCol(a,b)', ->
it 'should have a sorting function', ->
f = sortRowCol
debugger
console.log 'checking sort row'
f.should.not.equal(null, "didn't find the sortRowCol function")
describe 'sortRowCol(a, b)', ->
it 'should return -1 when first row is less than second', ->
a = {r: 2, c: "A"}
b = {r: 1, c: "A"}
r = sortRowCol a, b
r.should.equal(-1, "didn't get the correct value")
私の結果は次のとおりであるため、何かが正しくありません。
$ mocha --compilers coffee:coffee-script ./test/ss.coffee -R spec
SS
#sortRowCol(a,b)
1) should have a sorting function
sortRowCol(a, b)
2) should return -1 when first row is less than second
× 2 of 2 tests failed:
1) SS #sortRowCol(a,b) should have a sorting function:
ReferenceError: sortRowCol is not defined
存在しないファイル名に変更すると、「モジュールが見つかりません」というエラーが発生するため、ファイルを正しく見つけています。
に、またはその逆に変更しようとしsortRowCol(a,b)
ましたが、役に立ちませんでした。#sortRowCol(a, b)
ドキュメント (リンク) では # がそこで何をしているのかを実際には説明していません。
ss.coffee ファイルの参照方法に何か問題があるはずですが、わかりません。