次のコードがあります。
class Clients
constructor : ->
@clients = []
createClient : (name)->
client = new Client name
@clients.push client
次のように Jasmine BDD でテストしています。
describe 'Test Constructor', ->
it 'should create a client with the name foo', ->
clients = new clients
clients.createClient 'Foo'
Client.should_have_been_called_with 'Foo'
it 'should add Foo to clients', ->
clients = new clients
clients.createClient 'Foo'
expect(clients.clients[0]).toEqual SomeStub
私の最初のテストでは、コンストラクターが正しい名前で呼び出されているかどうかを確認したいと思います。2 番目の例では、新しいクライアントから出力されたものが配列に追加されたことを確認したいだけです。
Jasmine BDD を使用しており、スパイ/モック/スタブを作成する方法がありますが、コンストラクターをテストすることはできないようです。そのため、コンストラクターをテストする方法を検討しています。追加のライブラリを必要としない方法があればいいのですが、私は何に対してもオープンです。