【发布时间】:2016-11-19 07:15:15
【问题描述】:
我正在使用 angular、chai、angularmocks、mocha、karma。测试输出这个错误:
输入错误
map@[本机代码]
app/main.coffee:30:23
test/main.spec.coffee:59:20
assert = chai.assert
expect = chai.expect
describe("The Address Book App", () ->
describe("the proper filter", () ->
proper = null
beforeEach( () ->
module("AddressBook")
inject( ($injector)->
proper = $injector.get("$filter")("proper")
)
)
it("should proper case a string", () ->
expect(proper("ned stark")).to.equal("Ned Stark")
)
)
)
主咖啡
class AddressBook
constructor: ->
return []
class Proper
uppercase: (word) ->
word[0].toUpperCase().concat(word.slice(1))
constructor: () ->
return (name) ->
words = name.toString().split(" ")
return words.map(@uppercase).join(" ")
angular.module('AddressBook', new AddressBook())
.filter('proper', [Proper])
更新
我认为类方法“大写”更适合这种情况,并且在“main.coffee”中稍作改动即可通过测试。
class AddressBook
constructor: ->
return []
class Proper
@uppercase: (word) ->
word[0].toUpperCase().concat(word.slice(1))
constructor: () ->
return (name) ->
words = name.toString().split(" ")
return words.map(Proper.uppercase).join(" ")
angular.module('AddressBook', new AddressBook())
.filter('proper', [Proper])
但如果我真的需要实例方法,如何让测试通过?
【问题讨论】:
标签: javascript angularjs coffeescript mocha.js karma-runner