Javascript 我可以编写哪个测试来强制执行以下代码
我喜欢通过测试来强制我的设计,但当我涉及到集合时,我总是遇到问题。我要强制执行的代码如下:Javascript 我可以编写哪个测试来强制执行以下代码,javascript,python,ruby,tdd,coffeescript,Javascript,Python,Ruby,Tdd,Coffeescript,我喜欢通过测试来强制我的设计,但当我涉及到集合时,我总是遇到问题。我要强制执行的代码如下: clientInvoices : (client, callback)-> @all (invoices)-> callback invoice \ for invoice in invoices \ when invoice.data.clientId() is client.data._id() 起初我写道: it 'should get randomid
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脚本,但Python、Ruby或JavaScript的示例都值得欣赏。这没有意义:
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
(或者您在测试中使用的断言的正确语法在您的示例中应该是
)。有了这个额外的断言,让函数正常工作比让它生成假数据更容易。这没有意义:
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
(或者您在测试中使用的断言的正确语法在您的示例中应该是)。有了这个额外的断言,让函数正常工作要比让它生成假数据容易得多。这是一个糟糕的问题吗?如果情况不清楚,可以调整。问题是什么?如何测试第一个函数?问题是:我写的哪个测试迫使我写第一个函数?这是一个糟糕的问题吗?如果情况不清楚,可以调整。问题是什么?如何测试第一个函数?问题是:我写的哪个测试迫使我写第一个函数?发票确实是一个打字错误。增加额外的测试是我目前正在做的。我想我会继续这样做。谢谢你的回答。发票确实是个打字错误。增加额外的测试是我目前正在做的。我想我会继续这样做。谢谢你的回答。