2015-01-19 3 views
0

Я использую minitest в первый раз, и у меня возникли проблемы с пониманием того, как написать свой первый метод тестирования. Может ли кто-нибудь помочь мне в понимании того, что я должен тестировать в нижеперечисленном методе get_name?Основное введение в Ruby Minitest

class Player 
     def get_name(player) 
     puts `clear` 
     center("#{player}, whats your name bro/ladybro?") 
     @name = gets.chomp 
     until @name =~ /\A[[:alnum:]]+\z/ 
      center("you can do a combination of alphanumeric characters") 
      @name = gets.chomp 
     end 
     end 
end 

Это то, что у меня в тестовый файл, я думал, я просто предполагаю, чтобы проверить регулярное выражение, чтобы убедиться, что он принимает альфа- и числовые символы.

class TestPlayer < Minitest::Test 
    def test_get_name 
     describe "get_name" do 
     it "should allow an input of alphanumeric characters" do 
      assert_match(/\A[[:alnum:]]+\z/, "test_string123") 
     end 
     end  
    end 
end 

, но когда я запускаю тесты, ничего, кажется, произойдет, я предположил бы, что я предполагаю иметь 1 утверждение.

Run options: --seed 10135 

# Running: 

. 

Finished in 0.001565s, 638.9776 runs/s, 0.0000 assertions/s. 

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

Может ли кто-нибудь помочь в демонстрации того, как я должен написать тест для этого сценария? Благодарю.

+0

Что такое метод 'center'? –

+0

@JikkuJose my bad, метод-центр - это всего лишь форматирование, это выдержка из базовой игры tic tic tac toe, центр - это просто предположительно, чтобы центрировать текст на экране с 178 символами. – heinztomato

ответ

1

тест Minitest может быть описана следующим образом (Assertion синтаксис):

  1. Его просто простой рубин файл, который имеет класс Thats типично подкласс Minitest::Test.
  2. Метод setup будет называться первым; вы можете определить объекты, которые могут потребоваться в каждом тесте. Например: рассмотрите назначение экземпляра объекта Player здесь в переменной экземпляра в методе setup, чтобы вы могли использовать его в другом месте тестового класса.
  3. Тест определяется внутри метода, который начинается со строки: test_; любой другой метод может использоваться для уменьшения дублирования кода, но он не будет считаться частью тестов.
  4. Обычно вы должны думать о тестировании возвращаемое значение метода, который вы хотите проверить.
  5. Тестирование метода с внешним вводом more convoluted, я бы предложил начать с методов тестирования, которые имеют тестовый выход.
+0

спасибо за детали, короткие и до того, что несколько разъясняет мне некоторые вещи, я занимаюсь другими функциями, которые не связаны с вводом пользователя. – heinztomato