javascript - 引用错误: SomeName is not defined (exposing class in Haxe)

标签 javascript coffeescript tdd mocha.js haxe

我是 Haxe 的初学者。我尝试过FizzBu​​zz TDD。我使用了 Mochaexpect.js。 我通过 @:expose("SomeName") 公开了 Haxe 类,以便可以从测试中看到。

但是,测试找不到 FizzBu​​zz 类。

FizzBu​​zz.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);
        }
    }
}

Main.hx

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);

fizzbuzztest.coffee

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

如何从测试代码中找到 FizzBu​​zz 类?感谢您的帮助。

最佳答案

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

SomeName 已导出到您的导出中,因此它当前位于 fizzbuzz.SomeName 中,当然没有名为 SomeName 的变量(所以它告诉您)。

实际上,你的问题与haxe无关,只是你编写的coffeescript代码不正确,它也不适用于任何原生js模块。

关于javascript - 引用错误: SomeName is not defined (exposing class in Haxe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24925695/

相关文章:

javascript - 如何在每次单击按钮时显示数组中的 3 个项目

javascript - 开源 Node.js(和 Express)项目

javascript - AngularJS:没有 $scope 的 ng-repeat 中的变量在其本地范围内?

使用 jasmine 在 angularJS 中注入(inject)服务测试 Controller

c# - 是否可以重用代码进行集成和单元测试?

javascript - 如何在外旋转矩形的边界内夹住一个矩形

javascript - 将事件绑定(bind)到 div 但 'not' 内部 div

javascript - 为移动设备调整 Javascript 功能

php - 无法在@dataProvider PHPUnit 中返回对象

javascript - 防止 IE 包裹在 contenteditables 中的 P 元素中