Elixir测试 - ExUnit - 重复数据实例

Aug*_*eDB 4 testing tdd elixir

我正在使用ExUnit测试我的Elixir应用程序,这是一款纸牌游戏.

我发现,在我写的每一个测试中,我都会先创建一副新的卡片.

test "Do This Crazy Thing do
  deck = Deck.create()
  [...]
end

test "Do This Other Crazy Unrelated Thing" do
  deck = Deck.create()
   [...]
end
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,以便可以在每个测试用例之前创建一个新的套牌?我知道有一些与之相近的东西setup do [...] end,但我认为这不是我的解决方案.

我需要一个不同的测试框架吗?我是否需要以setup某种方式使用我尚未想到的?

-Augie

Rya*_*ell 9

您可以使用def setupmeta刚刚这一点.

例:

defmodule DeckTest do
  use ExUnit.Case

  setup do
    {:ok, cards: [:ace, :king, :queen] }
  end

  test "the truth", meta do
    assert meta[:cards] == [:ace, :king, :queen]
  end
end
Run Code Online (Sandbox Code Playgroud)

这里有更多信息