bundle gem して rspec で試験できるように、なメモ
とりあえず bundle gem 直後の状態は git init してる形らしい。つうか aws-sdk の spec 確認が先らしいのでもごもごしてみるなど。
ええと、spec/aws/ec2/vpc_collection_spec.rb を確認してたんですが書いてあることがイマイチよく分からない。うんうん唸りつつググッてみるに以下を発見。
これで AWS::EC2::Client な stub_for とか stub なあたりがイメージできたカンジ。とは言え、irb で
ec2.client.stub(:create_vpc).and_return(tmp)
とか NoMethodError とか言われてワケワカ。とは言え、vpc_collection_spec.rb にも以下な記述があるんですよね。
let(:response) { client.stub_for(:create_vpc) } before(:each) do response.data[:vpc] = vpc_details client.stub(:create_vpc).and_return(response) end
むむむ。
とりあえず
試験を先頭からナメてみます。つうかやっぱ stub というメソド (?) の根拠が分からない。むむむむ、とか言ってるとこいつらが rspec なソレであるらしいことが分かってきました。
上記の before なソレは client の create_vpc というメソドは response を戻す、という記述になるのか。むむ。であれば #create な context の記述は読めるな。
てか、これ標準装備ってことは rspec 何でもアリ、ですね。すばらです。
なんとなく作業進めてみるので何かあれば追記するかもしれません。
追記
現状、以下なカンジになってます。lib/vpccreate.rb
require "vpccreate/version" module Vpccreate # Your code goes here... end
クラスの名前どうしよ。そもそも Vpccreate という module の名前がどうなのか。
やっぱ今日かなりへろへろなので明日集中対応ってことで今日は休みます。端末くんも dropbox な同期処理でがんばってるみたいですし。
さらに追記
ヤッてみた。
$ bundle gem vpc-manage create vpc-manage/Gemfile create vpc-manage/Rakefile create vpc-manage/LICENSE.txt create vpc-manage/README.md create vpc-manage/.gitignore create vpc-manage/vpc-manage.gemspec create vpc-manage/lib/vpc-manage.rb create vpc-manage/lib/vpc-manage/version.rb Initializating git repo in /home/rms/OLDHome/rms/tmp/aws-ruby/vpc-manage
lib/vpc-manage.rb が以下。
$ cat lib/vpc-manage.rb require "vpc-manage/version" module Vpc module Manage # Your code goes here... end end
ふむ。つーことは aws-vpc とかって名前がありなのかどうか。gem search -r してみたところでは無いな。つうか色々あるんですね。
aws (2.7.0) aws-alert-monitor (0.0.5) aws-auth (0.9.1) aws-cloudfront (0.0.4) aws-controller (0.0.4) aws-ext (0.1.2) aws-ie (0.0.3) aws-pricing (0.7.0) aws-s3 (0.6.3) aws-s3-akhtaboot (0.6.2.1288082910) aws-s3-cse (0.1.1) aws-s3-instructure (0.6.2.1352914936) aws-s3-multi-region (0.6.3) aws-sdb (0.3.1) aws-sdk (1.8.1.2) aws-sdk-cloudwatch (0.0.6) aws-security-group-state (0.0.2) aws-ses (0.4.4) aws-ses-rails31 (0.4.4) aws-url (0.2.0) aws_cf_signer (0.1.1) aws_cloud_map (0.2.0) aws_cloud_search (0.0.2) aws_credentials (0.7.0) aws_csshx (0.1.4) aws_imageshack (0.4.0) aws_keychain (0.0.2) aws_onchange (1.0.4) aws_pipes (0.0.6) aws_s3_export (0.2.0) aws_sdb_bare (1.2.2) aws_sdk (3.1.5) aws_sns_publisher (0.0.0) aws_tools (0.0.2) aws_tracker (0.0.4)
とりあえず作ってやれ。
$ bundle gem aws-vpc create aws-vpc/Gemfile create aws-vpc/Rakefile create aws-vpc/LICENSE.txt create aws-vpc/README.md create aws-vpc/.gitignore create aws-vpc/aws-vpc.gemspec create aws-vpc/lib/aws-vpc.rb create aws-vpc/lib/aws-vpc/version.rb Initializating git repo in /home/rms/OLDHome/rms/tmp/aws-ruby/aws-vpc
本体はこうするか。
require "aws-vpc/version" module AWS class VPC end end
あと、以下を修正とか追加とか。
- Rakefile 修正
- spec 追加
- tasks 追加
で、試験を書きながら実装してけば良いのかどうか。基本的には wrapper でしかないので実装自体は楽だと思っているのですがどうなんだろ。つーか、実装検討よりも試験を云々する方がハードル高かったです。
# て作ってもいない時点でこれは無いなorz
さらに追記
む、lib 配下は aws というディレクトリを掘って、vpc.rb を作るのか。大丈夫かな。あるいは spec 配下も同様なのか。ここで手を出すと眠れなくなるはずなので一旦リリース。