두 번째 데이터베이스로 MongoDB와 함께 TDD를 사용하려면 어떻게해야합니까? RSpec에 또는 내가 그것을 테스트 할 수 있습니다 무엇을 사용TDD : Rspec Ruby MongoDB/Ruby Mongo Driver
:
감사
편집.
두 번째 데이터베이스로 MongoDB와 함께 TDD를 사용하려면 어떻게해야합니까? RSpec에 또는 내가 그것을 테스트 할 수 있습니다 무엇을 사용TDD : Rspec Ruby MongoDB/Ruby Mongo Driver
:
감사
편집.
[업데이트] MongoMapper 함께 를 쉽게 MongoMapper.database.eval(Mongo::Code.new('function(){ return 11 + 6; })
같은 MongoDB를 연결 직접
mongodb = MongoMapper.database
collection = mongodb.collection("my_collection")
collection.find.first
=> {"_id"=>BSON::ObjectId('4e43dfc75d1e1e0001000001'), "key1"=>"val1" }
이 다른 SO Q/A 더욱 직접 사용하는 자바 스크립트 함수를 사용하여 설정 [/ 업데이트]
나는 이런 다국어 아키텍처를 가지고 있으며, 일부 모델은 postgresql이고, 다른 것은 몽고 docu 멘토. 나는 당신이 무엇을 요구하고 있는지 정말로 모르겠다. 그래서 나는 여기로 들어가서 대부분의 나의 구성을 게시 할 것이다. 그것은 내 해킹을 포함, 당신은 아마 다른 곳에서 더 아름다운 설정을 찾으십시오.
나는 그래서 여기에 포함 된 다음 문서, 사양과 문서의, 요지 https://gist.github.com/957341확인에 설치를했습니다. 필자는 스펙을 하나씩 썼다.
class MyDocument
include MongoMapper::Document
key :title, String
key :published_at, Time, :index => true
key :collaborators, Array
many :my_embedded_documents
end
class MyEmbeddedDocument
include MongoMapper::EmbeddedDocument
key :title, String
key :author, String
embedded_in :my_document
end
사양
require "spec_helper"
describe MyDocument do
before do
@md = MyDocument.create(:title => "Example", :collaborators => ["mongomapper", "rspec", "oma"])
end
it "should have title" do
found = MyDocument.find(@md.id)
found.title.should == "Example"
end
it "should have two my_documents" do
MyDocument.create
MyDocument.count.should == 2
end
it "should be able to fetch embedded documents" do
@md.my_embedded_documents << MyEmbeddedDocument.new(:title => "The King", :name => "Elvis Presley")
@md.my_embedded_documents.build(:title => "Embedded example", :name => "Embeddo")
@md.save!
MyDocument.where(:title => "Example").first.should == @md #findMyEmbeddedDocument.count.should == 2
end
end
spec_helper.rb
RSpec.configure do |config|
#...
config.after(:each) do
MongoMapper.database.collections.each(&:remove)
end
end
난 당신이 대답을 원하는 것을 모르겠지만, 나는이 누군가에게 도움이 될 바랍니다.
내가 수집 할 수있는 것으로부터, 모델 데이터를 저장하지 않는이 보조 데이터베이스를 사용하여 앱이 레일스 MVC 패러다임을 고수하고있는 것처럼 보이지 않습니다.
mongo에 의존하는 앱의 보조 부분을 가져 와서 라이브러리에 붙여 넣는 것이 좋습니다. 다른 곳에서 사용하는 것이 좋으면이 보석을 만들 수 있습니다. 그런 다음 표준 테스트 도구를 사용하여 라이브러리 논리에 대한 테스트 세트를 만들고 간단한 요구 사항 또는 일부 지시문 (사용하는 기능과 사용 방법에 따라)에 앱에 통합하십시오.
맨손 MongoDB 드라이버를 사용하고 있습니까, 아니면 MongoMapper, Mongoid 등과 같은 ORM을 가지고 있습니까? 또한 MongoDB를 모델의 지속성 레이어, 캐싱, GridFS를 통한 파일 등으로 사용하고 있습니까? 몇 가지 추가 정보가 유용 할 것입니다. – michaeltomer
루비 몽고 매퍼 만 메인 데이터베이스가 아닙니다. 캐싱도없고, 아무것도. 그러나 이는 수많은 영구 데이터를 저장하는 응용 프로그램의 큰 부분을 차지합니다. – donald
너는 평야 건축에 대해 말하는거야? activerecord가있는 일부 모델, mongo 문서가 아닌 모델? 관심있는 mongomapper와 함께하는 방법을 보여줄 수 있습니까? – oma