Построение тестов при победе второго игрока

Второй игрок выигрывает, если выбранный им предмет является самым мощным.

  • Когда второй игрок выбирает ножницы, а первый игрок выбирает бумагу:
defmodule GameTest do
  use ExUnit.Case

  @stone 1
  @paper 2
  @scissor 3

  # ...

  describe "Game.play/2 when second player wins" do
    test "when second player chooses scissor and first player chooses paper" do
      first_player_choice = @paper
      second_player_choise = @scissor

      assert {:ok, match} = Game.play(first_player_choice, second_player_choise)

      assert match == "Second player win!!!"
    end
  end
end
Войдите в полноэкранный режим Выход из полноэкранного режима
  • Когда второй игрок выбирает бумагу, а первый игрок выбирает камень:
defmodule GameTest do
  use ExUnit.Case

  @stone 1
  @paper 2
  @scissor 3

  # ...

  describe "Game.play/2 when second player wins" do

    #...

    test "when second player chooses paper and first player chooses stone" do
      first_player_choice = @stone
      second_player_choise = @paper

      assert {:ok, match} = Game.play(first_player_choice, second_player_choise)

      assert match == "Second player win!!!"
    end
  end
end
Войти в полноэкранный режим Выход из полноэкранного режима
  • Когда второй игрок выбирает камень, а первый игрок выбирает ножницы:
defmodule GameTest do
  use ExUnit.Case

  @stone 1
  @paper 2
  @scissor 3

  # ...

  describe "Game.play/2 when second player wins" do

    #...

    test "when second player chooses stone and first player chooses scissor" do
      first_player_choice = @scissor
      second_player_choise = @stone

      assert {:ok, match} = Game.play(first_player_choice, second_player_choise)

      assert match == "Second player win!!!"
    end
  end
end
Войти в полноэкранный режим Выход из полноэкранного режима

Рассмотрим код тестов, когда результатом игры является "Second player win!!!".

defmodule GameTest do
  use ExUnit.Case

  @stone 1
  @paper 2
  @scissor 3

# ...

  describe "Game.play/2 when second player wins" do
    test "when second player chooses scissors and first player chooses paper" do
      first_player_choice = @paper
      second_player_choise = @scissor

      assert {:ok, match} = Game.play(first_player_choice, second_player_choise)

      assert match == "Second player win!!!"
    end

    test "when second player chooses paper and first player chooses stone" do
      first_player_choice = @stone
      second_player_choise = @paper

      assert {:ok, match} = Game.play(first_player_choice, second_player_choise)

      assert match == "Second player win!!!"
    end

    test "when second player chooses stone and first player chooses scissors" do
      first_player_choice = @scissor
      second_player_choise = @stone

      assert {:ok, match} = Game.play(first_player_choice, second_player_choise)

      assert match == "Second player win!!!"
    end
  end
end
Вход в полноэкранный режим Выход из полноэкранного режима

В следующем посте (скоро) мы напишем код нашего модуля Game, следуя тестам, когда побеждает второй игрок.

Контакты

Email: contato@diegonovais.com.br
Linkedin: https://www.linkedin.com/in/diegonovais/
Twitter: https://twitter.com/diegonovaistech

Оцените статью
devanswers.ru
Добавить комментарий