0
다음은 내가 작성한 다른 클래스를 테스트하기 위해 실행중인 rspec 테스트입니다. 불행히도 테스트하려는 메소드 (delete
)가 작동하지 않는 것 같습니다. 무엇 나를 던지고 것은 나는 Termianl에서지고있어 오류 메시지가 있다는 것이다 :Rspec은 구현 된 메소드가 구현되지 않았다고 말합니다.
/Users/user/Ruby/localWikiClient/localwiki_client/spec/delete_spec:11:in 'block (2 levels) in <top (required)>': undefined method 'delete' for #<Proc:0x007fe4739a5448> (NoMethodError)
그러나,이 방법은 클래스에 정의되어 있습니다. 아래 코드는 다음과 같습니다
require 'faraday'
require 'json/pure'
module Localwiki
##
# A client that wraps the localwiki api for a given server instance
#
class Client
attr_accessor :hostname # hostname of the server we'd like to point at
attr_reader :site_name # site resource - display name of wiki
attr_reader :time_zone # site resource - time zone of server, e.g. 'America/Chicago'
attr_reader :language_code # site resource - language code of the server, e.g. 'en-us'
def initialize hostname, user=nil, apikey=nil
@hostname = hostname
@user = user
@apikey = apikey
create_connection
collect_site_details
end
##
# Get site resource and set instance variables
#
def collect_site_details
site = fetch('site','1')
@site_name = site['name']
@time_zone = site['time_zone']
@language_code = site['language_code']
end
##
# create Faraday::Connection instance and set @site
#
def create_connection
@site = Faraday.new :url => @hostname
end
##
# delete a specific resource
# resources are "site", "page", "user", "file", "map", "tag", "page_tag"
# identifier is id, pagename, slug, etc.
def delete(resource,identifier)
case resource
when resource == "site"
@hostname = identifier
create_connection
when resouce == "user"
@hostname = list(identifier)
end
http_delete()
end
def http_delete()
response = @site.delete
puts response.to_s
end
는 여기에 내가 실행하는 데 노력하고있어 RSpec에 테스트입니다 :
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
require 'localwiki_client'
describe '<siteinfo>.amazonaws.com/bears' do
subject { Localwiki::Client.new '<siteinfo>.compute-1.amazonaws.com/bears', '<username>', '[myApiKey]' }
context '#fetch' do
subject.delete('page', 'bears')
end
end
죄송합니다 .. 저는 Ruby의 새로운 제품입니다. 여러분이 의미하는 바의 예를 포함시킬 수 있습니까? 너의 답? – NealR
나는 어떻게 위의 "it"블록에'subject.delete' 줄을 싸는 지 알아 챘다. –
아하 .. 알았어. 고맙습니다 – NealR