Javascript ReferenceError:未定义SomeName(在Haxe中公开类)

Javascript ReferenceError:未定义SomeName(在Haxe中公开类),javascript,coffeescript,tdd,mocha.js,haxe,Javascript,Coffeescript,Tdd,Mocha.js,Haxe,我是Haxe的初学者。我试着做了嘶嘶嗡嗡的TDD。我用了摩卡咖啡和expect.js。 我通过@:expose(“SomeName”)公开了Haxe类,以便能够从测试中看到它 但是,测试无法找到FizzBuzz类 FizzBuzz.hx package ; @:expose("SomeName") class FizzBuzz{ public function new() { } public function put(n : Int) : String {

我是Haxe的初学者。我试着做了嘶嘶嗡嗡的TDD。我用了摩卡咖啡和expect.js。 我通过
@:expose(“SomeName”)
公开了Haxe类,以便能够从测试中看到它

但是,测试无法找到FizzBuzz类

FizzBuzz.hx

package ;

@:expose("SomeName")
class FizzBuzz{

    public function new() {

    }

    public function put(n : Int) : String {
        if (n == 3) {
            return "Fizz";
        }
        else {
            return Std.string(n);
        }
    }
}
package ;

import js.Lib;

class Main {

    static function main() {
        var f = new FizzBuzz();
        for (i in 1...100) {
            f.put(i);
        }

    }

}
Main.hx

package ;

@:expose("SomeName")
class FizzBuzz{

    public function new() {

    }

    public function put(n : Int) : String {
        if (n == 3) {
            return "Fizz";
        }
        else {
            return Std.string(n);
        }
    }
}
package ;

import js.Lib;

class Main {

    static function main() {
        var f = new FizzBuzz();
        for (i in 1...100) {
            f.put(i);
        }

    }

}
fizzbuzz.js

(function ($hx_exports) { "use strict";
var FizzBuzz = $hx_exports.SomeName = function() {
};
FizzBuzz.prototype = {
    put: function(n) {
        if(n == 3) return "Fizz"; else if(n == null) return "null"; else return "" + n;
    }
};
var Main = function() { };
Main.main = function() {
    var f = new FizzBuzz();
    var _g = 1;
    while(_g < 100) {
        var i = _g++;
        f.put(i);
    }
};
Main.main();
})(typeof window != "undefined" ? window : exports);
错误消息

expect = require 'expect.js'
fizzbuzz   = require '../bin/fizzbuzz.js'

describe 'fizzbuzz', ->
    it 'put Fizz when 3 is given', ->
        f = new SomeName()
        result = f.put(3)
        expect(result).to.be(3)
fizzbuzz put Fizz when 3 is given
    ✘ failed
        ReferenceError: SomeName is not defined

如何从测试代码中找到FizzBuzz类?谢谢您的帮助。

fizzbuzz=require'../bin/fizzbuzz.js'

SomeName已导出到您的导出中,因此它现在位于
fizzbuzz.SomeName
中,当然没有名为
SomeName
的变量(它对您这样说)


实际上,您的问题与haxe无关,只是您编写的coffeescript代码不正确,无法与任何本机js模块一起工作。

这并不能回答您的问题,但更直接的方法可能是使用本机haxe BDD库。到目前为止,我非常喜欢一个名为“Buddy”的新游戏: