Rake NoMethodError:未定义的方法’scan’for Lexicon:Class

我收到NoMethodError:当我尝试使用以下RakeFile运行rake测试时,Lexicon:Class的未定义方法’scan’

require './lib/ex48/lexicon.rb' require 'test/unit' class TestLexicon < Test::Unit::TestCase def test_directions assert_equal(Lexicon.scan('north'), [%w(direction north)]) end end 

我有一个简单的Lexicon类:

 class Lexicon def initialize @direction = %w(north south east west down up left right back) @verbs = %w(go stop kill eat) @stop_words = %w(the in of from at it) @nouns = %w(door bear princess cabinet) @numbers = (0..9) end attr_reader :direction, :verbs, :stop_words, :nouns, :numbers def scan(input) words = input.split result = [] words.each do |word| if @direction.include? word result.push ['direction', word] next end if @verbs.include? word result.push ['verb', word] next end if @stop_words.include? word result.push ['stop', word] next end if @nouns.include? word result.push ['noun', word] next end result.push ['number', word] if @numbers.include? word end result end end 

我想知道扫描方法是否正常工作。 我正在学习Ruby,所以我是这门语言的新手,这是我的第二次RakeFile测试。 我究竟做错了什么?

def self.scan是为了使方法成为第一类,而不是实例方法(在类的实例上调用)。 或者只是使用Lexicon.new(args).scan