【问题标题】:Elixir testing - ExUnit - Repeating Data InstancesElixir 测试 - ExUnit - 重复数据实例
【发布时间】:2015-07-04 16:25:22
【问题描述】:

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

我发现每次编写测试时,我都会从创建一副新牌开始。

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

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

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

我需要不同的测试框架吗?我是否需要以我还没有想到的方式使用setup

-奥吉

【问题讨论】:

    标签: testing tdd elixir


    【解决方案1】:

    您可以将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
    

    Here's 更多信息

    【讨论】:

    【解决方案2】:

    另一个可以根据您的需要工作的选项:

    defmodule DeckTest do
      use ExUnit.Case
    
      defp cards, do: [:ace, :king, :queen]
    
      test "the truth" do
        assert cards == [:ace, :king, :queen]
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2019-11-20
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多