我喜欢让我的测试来强制我的设计但是当我来到收藏品时,我总是遇到问题。我想强制执行的代码如下:
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]
代码在Coffee-Script中,但Python,Ruby或JavaScript中的示例都很受欢迎。
答案 0 :(得分: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
)。通过这种额外的断言,您可以更轻松地使您的功能正常工作,而不是让它生成虚假数据。