2011-10-26 69 views
1

我喜歡我的測試,迫使我的設計,但是當我說到收藏,我總是遇到問題。我想強迫的代碼如下:,我可以寫一個測試,以迫使下面的代碼

clientInvoices : (client, callback)-> 

    @all (invoices)-> 

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

起初,我寫道:

it 'should get randomid1 invoices', -> 

    subject.clientInvoices client, (invoices)-> 

    invoices.length.should_be 3 

但既然你需要通過測試用的精力最少的你能做出這樣擦肩而過做

clientInvoices : (client, callback)-> 

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

該代碼是在咖啡腳本,但在Python,Ruby或JavaScript的例子都讚賞。

+0

它是一個蹩腳的問題嗎?如果事情不清楚,可以調整它。 – Pickels

+0

是什麼問題?如何測試第一個功能? –

+0

問題是:我寫哪個測試迫使我寫第一個函數? – Pickels

回答

1

這是沒有意義的:

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

我想你一定是指

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

如果是這樣的話,那麼解決你的困惑是簡單地添加有關invoices多個斷言通過回調接收的對象,例如

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

(或者是在您的測試,你在你的例子中使用should_be說法正確的語法)。有了這個額外的斷言,讓你的功能正常工作比讓它產生假數據更容易。

+0

發票確實是一個錯字。增加額外的測試是我目前正在做的。猜猜我會繼續這樣做。感謝你的回答。 – Pickels

相關問題