Best Machinist code snippet using Machinable.make
machinable_spec.rb
Source:machinable_spec.rb
...12describe Machinist::Machinable do13 before(:each) do14 MachinableSpecs::Post.clear_blueprints!15 end16 it "makes an object" do17 MachinableSpecs::Post.blueprint do18 title { "First Post" }19 end20 post = MachinableSpecs::Post.make21 post.should be_a(MachinableSpecs::Post)22 post.title.should == "First Post"23 end24 it "makes an object from a named blueprint" do25 MachinableSpecs::Post.blueprint do26 title { "First Post" }27 body { "Woot!" }28 end29 MachinableSpecs::Post.blueprint(:extra) do30 title { "Extra!" }31 end32 post = MachinableSpecs::Post.make(:extra)33 post.should be_a(MachinableSpecs::Post)34 post.title.should == "Extra!"35 post.body.should == "Woot!"36 end37 it "makes an array of objects" do38 MachinableSpecs::Post.blueprint do39 title { "First Post" }40 end41 posts = MachinableSpecs::Post.make(3)42 posts.should be_an(Array)43 posts.should have(3).elements44 posts.each do |post|45 post.should be_a(MachinableSpecs::Post)46 post.title.should == "First Post"47 end48 end49 it "makes array attributes from the blueprint" do50 MachinableSpecs::Comment.blueprint { }51 MachinableSpecs::Post.blueprint do 52 comments(3) { MachinableSpecs::Comment.make }53 end54 post = MachinableSpecs::Post.make55 post.comments.should be_a(Array)56 post.comments.should have(3).elements57 post.comments.each do |comment|58 comment.should be_a(MachinableSpecs::Comment)59 end60 end61 it "fails without a blueprint" do62 expect do63 MachinableSpecs::Post.make64 end.should raise_error(Machinist::NoBlueprintError) do |exception|65 exception.klass.should == MachinableSpecs::Post66 exception.name.should == :master67 end68 expect do69 MachinableSpecs::Post.make(:some_name)70 end.should raise_error(Machinist::NoBlueprintError) do |exception|71 exception.klass.should == MachinableSpecs::Post72 exception.name.should == :some_name73 end74 end75 it "fails when calling make! on an unsavable object" do76 MachinableSpecs::Post.blueprint { }77 expect do78 MachinableSpecs::Post.make!79 end.should raise_error(Machinist::BlueprintCantSaveError) do |exception|80 exception.blueprint.klass.should == MachinableSpecs::Post81 end82 end83end...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!