Какой тест я мог написать, чтобы заставить следующий код - PullRequest
1 голос
/ 26 октября 2011

Мне нравится, когда мой тест заставляет мой дизайн, но когда я прихожу в коллекцию, у меня всегда возникают проблемы.Код, который я хочу использовать, следующий:

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 приветствуются.

1 Ответ

1 голос
/ 27 октября 2011

Это не имеет смысла:

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 в своем примере).С этим дополнительным утверждением вам будет проще заставить вашу функцию работать должным образом, чем создавать ложные данные.

...