Minitest Fehler - ArgumentError: falsche Anzahl von Argumenten (1, erwartete 0)

Mache ich eine übung auf exercism.io. Dieser Wunsch in der Spec-Dokument:

  1. Die Hello World! Programm GRÜßEN mich, der Anrufer.
  2. Wenn ich dem Programm sagen, mein name ist Alice, Sie begrüßen mich mit den Worten "Hallo, Alice!".
  3. Wenn ich zu vernachlässigen, dass es mein name, Sie werden mich begrüßen mit den Worten "Hello, World!"

class HelloWorldTest < Minitest::Test
  def test_no_name
    assert_equal 'Hello, World!', HelloWorld.hello
  end

  def test_sample_name
    assert_equal 'Hello, Alice!', HelloWorld.hello('Alice')
  end

  def test_other_sample_name
    assert_equal 'Hello, Bob!', HelloWorld.hello('Bob')
  end
end

Dies ist mein Programm:

class HelloWorld
  def self.hello
    "Hello, World!"
  end

  def initialize(name)
    @name = name
  end

  def say_hello
    puts "Hello, #{@name}!"
  end
end

print "Give me your name: "
your_name = gets.chomp
hello = HelloWorld.new(your_name)
if your_name == ""
  puts "Hello, World!"
else
  hello.say_hello
end

Das Programm läuft und erfüllt alle Anforderungen, aber ich bekomme die Fehlermeldung:

1) Error:
HelloWorldTest#test_sample_name:
ArgumentError: wrong number of arguments (given 1, expected 0)
    /Users/drempel/exercism/ruby/hello-world/hello_world.rb:3:in `hello'
    hello_world_test.rb:24:in `test_sample_name'

3 runs, 1 assertions, 0 failures, 1 errors, 1 skips

Wie definiere ich eine Methode, die keine Argumente erforderlich sind?

InformationsquelleAutor Dan Rempel | 2016-02-17

Schreibe einen Kommentar