{ Faker::Internet.mac_address('00') } end factory :git_server, class: Netns do internal_network_host name 'git_server' ip_address '10.10.10.1' virtual_port_number 3 physical_port_number 3 end factory :git_client, class: Netns do internal_network_host name 'git_client' ip_address '10.10.10.3' virtual_port_number 2 physical_port_number 2 end end Given(/^ヨーヨーダイン社 の Git リポジトリサーバ$/) do @git_server = Netns.new(attributes_for(:git_server)) Thread.start { @git_server.exec "bash -c 'echo OK | nc -l 11000'" } sleep 3 end Given(/^Git クライアントとなる開発者 PC$/) do @git_client = Netns.new(attributes_for(:git_client)) end When(/^開発者 PC から社内 Git リポジトリへアクセス$/) do cd('.') do @git_client.exec "nc -v #{@git_server.ip_address} 11000 > log/nc_git.log" end end Then(/^社内 Git リポジトリにアクセス成功$/) do step %(the file "log/nc_git.log" should contain "OK") end