我是 Elixir 的新手,并试图学习它的一些功能,包括测试库 ExUnit,但我在理解如何为特定函数编写和设置测试的概念以及我是否朝着正确的方向前进时遇到了一些困难.
例如,要测试从 CSV 文件获取数据后列表是否有序,我是否需要实际调用我编写的函数来执行此操作,或者只是提供无序数据的模拟列表?
//Module function that parses the CSV file
def parse_csv do
@csv_path
|> Path.expand(__DIR__)
|> File.stream!
|> CSV.decode
|> CSV_MODULE.prioritize_claims
end
我是否需要实际将该模块函数导入到我的测试文件中,然后实际调用它,或者我是否只提供一个无序的示例测试列表,然后将该列表传递给应该对其进行排序的函数。
如果您编写一个辅助函数来执行此操作,并使用从 parse_csv 函数获得的输出来调用它,您可以并且应该直接使用您期望从该函数获得的可能输出来测试它。
如果您想一起测试所有内容,那么拥有一个示例 CSV 文件也是一个不错的选择,甚至可以使用多个 CSV 文件来测试所有内容是否按预期运行。