1

私はこのコードを持っています:

class root.Goal
    constructor: (@name, @size) ->
        if @size <= 0 then throw new Error "Goal must be larger than 0 size"

この Jasmine-CoffeeScript テストでテスト済み:

it "cannot be of size 0", ->
    expect(new p.Goal("Goal 3", 0)).toThrow "Goal must be larger than 0 size"

例外がスローされたように見えますが、テストによって処理されていません。

cannot be of size 0
Failures:
  1) cannot be of size 0
   Message:
     Error: Goal must be larger than 0 size
   Stacktrace:
     Error: Goal must be larger than 0 size
    at new Goal (/var/lib/stickshift/1d4f33cd01e442eaa154aed2e7697ca7/app-root/data/235917/prioritization/process.coffee:14:15)

何か案は?

4

1 に答える 1

1

すでにわかっているように、エラーをスローするコードへの呼び出しを無名関数でラップする必要があります。期待する呼び出しを行わない場合、エラーをスローするコードの「結果」(存在する場合) が取得されます。したがって、expects が呼び出されると、すべての「アクション」はすでに終了しています。

于 2012-08-27T15:00:01.170 に答える