Правильный способ тестирования драгоценных камней

Если гем имеет зависимости от rails, как вы думаете, лучше ли написать тесты гем таким образом, чтобы их можно было запускать автономно, или запускать их в рамках проекта rails?


person knoopx    schedule 18.01.2010    source источник


Ответы (2)


Gem должен быть частью кода, который действует автономно. В противном случае это часть приложения, поэтому тесты также следует создавать отдельно. Таким образом, другие (гипотетически) также могут выполнять тесты. Если тесты зависят от вашего приложения, другие не могут протестировать ваш гем.

Кроме того, когда вы хотите протестировать свой драгоценный камень, он не должен давать сбой из-за сбоя вашего приложения. После того, как ваш драгоценный камень прошел тест, вы можете протестировать приложение, зная, что ваш драгоценный камень работает хорошо (при условии, что вы все протестировали).

Независимо от того, зависит ли гем от Rails или нет, это не проблема, так как Rails также был протестирован (и вы можете предположить, что он работает правильно). Таким образом, эти зависимости не влияют (/должны) влиять на ваш гем.

person Veger    schedule 18.01.2010

Я бы сказал, что это зависит от того, какие зависимости нужны драгоценному камню. Например. если это просто ActiveRecord, его довольно легко включить в набор тестов. В более сложных случаях вы всегда можете смоделировать часть необходимой функциональности. В действительно сложных случаях создание тестового приложения лучше, чем ничего (IMO).

person Milan Novota    schedule 18.01.2010