spec/spec_helper.rb in chatterbot-0.7.1 vs spec/spec_helper.rb in chatterbot-0.9.0
- old
+ new
@@ -1,72 +1,84 @@
# -*- coding: utf-8 -*-
require 'simplecov'
SimpleCov.start
-#$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
-#$LOAD_PATH.unshift(File.dirname(__FILE__))
require 'bundler/setup'
Bundler.require
-#require "twitter_oauth"
require "twitter"
-#require 'tempfile'
-#require 'sqlite3'
-
-
# Requires supporting files with custom matchers and macros, etc,
# in ./support/ and its subdirectories.
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
+RSpec.configure do |config|
+ config.mock_with :rspec do |mocks|
+ # This option should be set when all dependencies are being loaded
+ # before a spec run, as is the case in a typical spec helper. It will
+ # cause any verifying double instantiation for a class that does not
+ # exist to raise, protecting against incorrectly spelt names.
+ mocks.verify_doubled_constant_names = true
+
+ end
+end
+
def test_bot
bot = Chatterbot::Bot.new
- bot.stub(:load_config).and_return({})
- bot.stub(:update_config_at_exit)
+ allow(bot).to receive(:load_config).and_return({})
+ allow(bot).to receive(:update_config_at_exit)
+ bot.reset!
bot
end
+def stubbable_client
+ c = Twitter::Client.new
+ allow(c).to receive_messages(:credentials? => true)
+ c
+end
+
def fake_search(max_id = 100, result_count = 0, id_base=0)
- double(Twitter::Client,
- :credentials? => true,
- :search => Twitter::SearchResults.new(:search_metadata => {:max_id => max_id},
- :statuses => 1.upto(result_count).collect { |i| fake_tweet(i, id_base) } )
- )
+ result = 1.upto(result_count).each_with_index.map { |x, i|
+ fake_tweet(max_id - i, id_base)
+ }
+ allow(result).to receive(:max_id).and_return(max_id)
+
+ c = stubbable_client
+ allow(c).to receive_messages(:search => result)
+ c
end
def fake_replies(result_count = 0, id_base = 0)
- double(Twitter::Client,
- {
- :credentials? => true,
- :mentions => 1.upto(result_count).collect { |i| fake_tweet(i, id_base, true) }
- }
- )
+ c = stubbable_client
+ allow(c).to receive_messages(:mentions_timeline => 1.upto(result_count).collect { |i| fake_tweet(i, id_base)})
+ c
end
def fake_followers(count)
- double(Twitter::Client,
- {
- :credentials? => true,
- :followers => 1.upto(count).collect { |i| fake_follower(i) }
- }
- )
+ c = stubbable_client
+ allow(c).to receive_messages(:followers => 1.upto(count).collect { |i| fake_follower(i) })
+ c
end
-def fake_tweet(index, id=0, as_object = false)
+def fake_tweet(index, id=0)
id = index if id <= 0
x = {
:from_user => "chatterbot",
:index => index,
:id => id,
- :user => {
- 'screen_name' => "chatterbot"
- }
+ :text => "I am a tweet",
+ :user => { :id => 1, :screen_name => "chatterbot" }
}
- as_object == true ? Twitter::Tweet.new(x) : x
+ Twitter::Tweet.new(x)
end
def fake_follower(index=0)
- Twitter::User.new(:id => index, :name => "Follower #{index}")
+ Twitter::User.new(:id => index, :name => "Follower #{index}",
+ :screen_name => "follower#{index}")
+end
+
+def fake_user(name, id = 1)
+ Twitter::User.new(:id => id, :name => name, :screen_name => name)
end