Я бы хотел, чтобы машинист , машинист_mongo , mongo_mapper , огурец и маринад , чтобы играть красивовместе.
В настоящее время у меня есть машинист со всеми настроенными чертежами, и я использую огурец для выполнения BDD.Все идет нормально.Моя проблема в том, что мне приходится писать собственные шаги по огурцу для всех моих чертежей машиниста.На самом деле это не проблема, так как это не останавливает меня, но как разработчик .NET, проверяющий рельсы, я чувствую себя действительно грязно, когда приходится писать шаг для каждого проекта, тогда как в .NET я, вероятно, мог бы использоватьрефлексия.
Можно ли каким-то образом получить встроенные в capture_model
, capture_plural_factory
и т. д. маринады для распознавания моих чертежей машиниста?
Я уверен, что у меня настроен и настроен машинистправильно, потому что когда я использую blueprintname.make
, в пользовательском шаге огурца все работает правильно.
Версии драгоценных камней:
рельсы 2.3.8
огурец 0.8.3
огурец-рельсы 0.3.2
монго 1.0.5
mongo_mapper 0.8.2
рассол 0.3.0
машинист 1.0.6
машинист_монго 1.1.1
функции / поддержка / рассол.rb:
require 'pickle/world'
Pickle.configure do |config|
config.adapters = [:machinist]
end
Я пытался использовать config.adapters = [:machinist, Machinist::MongoMapperAdapter]
, но я получаю сообщение об ошибке, в котором говорится, что не существует метода factories
для Machinist::MongoMapperAdapter
.
неопределенный метод `фабрики 'для машиниста:: MongoMapperAdapter: Class (NoMethodError) /usr/local/lib/ruby/gems/1.8/gems / pickle-0.3.0 / lib / pickle / config.rb: 25: в "фабриках"
features / support / machinist.rb:
require 'machinist'
require 'machinist/mongo_mapper'
require "#{Rails.root}/spec/blueprints"
require 'database_cleaner'
Before { Sham.reset } # reset Shams in between scenarios
spec / blueprints.rb (усечено для ясности)
require 'sham'
require 'faker'
Sham.code { Faker::Lorem.words 1 }
AccessCode.blueprint do
code
end
app / models / access_code.rb
class AccessCode
include MongoMapper::Document
key :code, String, :required => true
end