Если гем имеет зависимости от rails, как вы думаете, лучше ли написать тесты гем таким образом, чтобы их можно было запускать автономно, или запускать их в рамках проекта rails?
Правильный способ тестирования драгоценных камней
Ответы (2)
Gem должен быть частью кода, который действует автономно. В противном случае это часть приложения, поэтому тесты также следует создавать отдельно. Таким образом, другие (гипотетически) также могут выполнять тесты. Если тесты зависят от вашего приложения, другие не могут протестировать ваш гем.
Кроме того, когда вы хотите протестировать свой драгоценный камень, он не должен давать сбой из-за сбоя вашего приложения. После того, как ваш драгоценный камень прошел тест, вы можете протестировать приложение, зная, что ваш драгоценный камень работает хорошо (при условии, что вы все протестировали).
Независимо от того, зависит ли гем от Rails или нет, это не проблема, так как Rails также был протестирован (и вы можете предположить, что он работает правильно). Таким образом, эти зависимости не влияют (/должны) влиять на ваш гем.
Я бы сказал, что это зависит от того, какие зависимости нужны драгоценному камню. Например. если это просто ActiveRecord, его довольно легко включить в набор тестов. В более сложных случаях вы всегда можете смоделировать часть необходимой функциональности. В действительно сложных случаях создание тестового приложения лучше, чем ничего (IMO).