2011-10-26 7 views
1

私のデザインを強制するテストが好きですが、コレクションになると常に問題にぶつかります。私は強制したいコードは以下の通りです:次のコードを強制するために書くことができるテスト

it 'should get randomid1 invoices', -> 

    subject.clientInvoices client, (invoices)-> 

    invoices.length.should_be 3 

をしかし、あなたは、あなたがすることで、このパスを作ることができる最小限の労力でテストパスを作成する必要があるので:

clientInvoices : (client, callback)-> 

    @all (invoices)-> 

    callback invoice \ 
    for invoice in invoices \ 
    when invoice.data.clientId() is client.data._id() 

は、最初に私が書きました

clientInvoices : (client, callback)-> 

    @all (invoices)-> callback [1,2,3] 

コードはCoffee-Scriptにありますが、Python、Ruby、またはJavaScriptの例がすべて評価されています。

+0

おかしな質問ですか?物事がはっきりしない場合はそれを調整することができます。 – Pickels

+0

何が問題なのですか?どのように最初の関数をテストするには? –

+0

質問は次のとおりです。どのテストを書いて最初の関数を書くのですか? – Pickels

答えて

1

これは意味をなさない:

for invoice in invoices \ 
when invoices.data.clientId() is client.data._id() 

は、私はあなたがそのような場合、その後、あなたの困惑を解決がinvoices詳細アサーションを追加するだけである

for invoice in invoices \ 
when invoice.data.clientId() is client.data._id() 

を意味する必要がありますだと思いますコールバックによって受け取られたオブジェクト、例えば

invoice.data.clientId().should_be client.data._id() for invoice in invoices 

(またはものは何でもあなたのテストあなたの中にアサーションの正しい構文は、あなたの例でshould_beを使用しています)。そのような追加のアサーションを使用すると、偽のデータを生成するよりも、関数を適切に機能させる方が簡単です。

+0

実際に請求書Sはタイプミスでした。余分なテストを追加することは私が今やっていることです。私はちょうどそれを続けるだろうと思う。答えをありがとう。 – Pickels

関連する問題