{"id":36,"date":"2008-07-11T11:22:47","date_gmt":"2008-07-11T10:22:47","guid":{"rendered":"http:\/\/www.hinnerup.net\/?p=36"},"modified":"2016-09-28T11:21:40","modified_gmt":"2016-09-28T10:21:40","slug":"mssql-from-ruby-and-watir","status":"publish","type":"post","link":"https:\/\/www.hinnerup.net\/en\/permanent\/2008\/07\/11\/mssql-from-ruby-and-watir\/","title":{"rendered":"MS SQL tilgang fra Ruby og Watir"},"content":{"rendered":"<p><a href=\"http:\/\/wtr.rubyforge.org\/\">Watir<\/a> er et framework til automatiserede unit tests af webapplikationer ved brug af et automatiseringslag rettet imod Internet Explorer. Der er tiltag igang for at kunne <a href=\"http:\/\/wtr.rubyforge.org\/platforms.html\">benytte Watir i Firefox og Safari<\/a> browserne.<\/p>\n<p>I forbindelse med implementering af adskillige unit tests for en kunde opstod behovet for at kunne checke b\u00e5de datamodel og web-snitfalde imod hinanden. Dataene for de web applikationer der l\u00f8bende skal kunne testes er placeret i en st\u00f8rre SAN baseret MS SQL database.<\/p>\n<p><a href=\"http:\/\/www.ruby-lang.org\">Ruby<\/a> har et helt fortrinligt database API, kaldet <a href=\"http:\/\/ruby-dbi.rubyforge.org\/\">dbi<\/a>, som kan anvendes til form\u00e5let. Man skal blot installere en <a href=\"https:\/\/en.wikipedia.org\/wiki\/ADO.NET\">ADO<\/a> wrapper f\u00f8rst, da denne ikke som standard medf\u00f8lger seneste Ruby installationspakke (v186-26). Dette g\u00f8res ved f\u00f8rst at hente denne dbi pakke indeholdende alle wrappere:<br \/>\n<a href=\"http:\/\/rubyforge.org\/frs\/download.php\/655\/ruby-dbi-all-0.0.23.tar.gz\">http:\/\/rubyforge.org\/frs\/download.php\/655\/ruby-dbi-all-0.0.23.tar.gz<\/a>.<\/p>\n<p>Udpak herfra filen &#8220;ruby-dpi-all\/lib\/dbd_ado\/ADO.rb&#8221; og kopier denne fil til en nyoprettet &#8220;ADO&#8221; mappe i din Ruby installationssti, s\u00e5ledes den endelige placering for wrapper filen bliver &#8220;\/lib\/ruby\/site_ruby\/1.8\/DBD\/ADO\/ADO.rb&#8221;.<\/p>\n<p>Det er s\u00e5danset alt der skal til. Du er nu istand til at tilg\u00e5 MS SQL databaser fra Ruby, og dermed ogs\u00e5 fra Watir.<\/p>\n<p>Eksempel:<\/p>\n<pre>\r\nrequire 'test\/unit'\r\nrequire 'watir'\r\nrequire \"dbi\"\r\n\r\nConnectionString =\r\n  \"Provider=SQLOLEDB;\" +\r\n  \"Data Source=<i style=\"color:blue\">DBSOURCE<\/i>;\" +\r\n  \"Initial Catalog=<i style=\"color:blue\">CATALOG<\/i>;\" +\r\n  \"User ID=<i style=\"color:blue\">USERNAME<\/i>;\" +\r\n  \"Password=<i style=\"color:blue\">PASSWORD<\/i>;\" +\r\n  \"Application name=RubyWatir;\" +\r\n  \"Connection Timeout=0\"\r\n\r\nclass MyTestClass &lt; Test::Unit::TestCase\r\n  ...\r\n  def test_database\r\n    ...\r\n    db = DBI.connect(\"DBI:ADO:\" + ConnectionString)\r\n    sql = \"select product, price, description from t_products\"\r\n    sth = db.prepare(sql)\r\n    sth.execute\r\n    row = sth.fetch\r\n    puts row\r\n    product = row[0]\r\n    price = row[1]\r\n    description = row[2]\r\n    sth.finish\r\n    db.disconnect\r\n    ...\r\n   end\r\n   ...\r\nend<\/pre>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Watir er et framework til automatiserede unit tests af webapplikationer ved brug af et automatiseringslag rettet imod Internet Explorer. Der er tiltag igang for at kunne benytte Watir i Firefox og Safari browserne. I forbindelse med implementering af adskillige unit tests for en kunde opstod behovet for at kunne checke b\u00e5de datamodel og web-snitfalde imod [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12],"tags":[38,122,40,39],"class_list":["post-36","post","type-post","status-publish","format-standard","hentry","category-programming","category-ruby","tag-database","tag-ruby","tag-unit-testing","tag-watir"],"_links":{"self":[{"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/posts\/36","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/comments?post=36"}],"version-history":[{"count":6,"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/posts\/36\/revisions"}],"predecessor-version":[{"id":2415,"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/posts\/36\/revisions\/2415"}],"wp:attachment":[{"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/media?parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/categories?post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hinnerup.net\/en\/wp-json\/wp\/v2\/tags?post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}