Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何测试将一种文件类型转换为另一种文件类型的函数_Elixir_File Conversion_Ex Unit - Fatal编程技术网

Elixir 如何测试将一种文件类型转换为另一种文件类型的函数

Elixir 如何测试将一种文件类型转换为另一种文件类型的函数,elixir,file-conversion,ex-unit,Elixir,File Conversion,Ex Unit,我正在开发一个小的escript应用程序,它可以将电子书格式(.pdf,.epub)转换为.mobi格式,以便在Kindle上使用,我想知道(使用ExUnit)如何在不实际运行代码并生成新转换文件的情况下测试转换是否成功 现在,脚本只是循环遍历目录的内容,并通过调用包将适当的文件转换为.mobi,尽管稍后我想自己进行转换。您是否只想测试命令是否使用正确的参数调用?因为您自己还没有实现实际的转换逻辑,所以没有理由进行测试。我几乎会采取假设转换成功的方法,只是验证您是否获得了正确的输入,并在获得文件

我正在开发一个小的escript应用程序,它可以将电子书格式(
.pdf
.epub
)转换为
.mobi
格式,以便在Kindle上使用,我想知道(使用ExUnit)如何在不实际运行代码并生成新转换文件的情况下测试转换是否成功


现在,脚本只是循环遍历目录的内容,并通过调用包将适当的文件转换为
.mobi
,尽管稍后我想自己进行转换。

您是否只想测试命令是否使用正确的参数调用?因为您自己还没有实现实际的转换逻辑,所以没有理由进行测试。我几乎会采取假设转换成功的方法,只是验证您是否获得了正确的输入,并在获得文件后做了正确的事情。尽管@HarrisonLucas在我当前的实现中是正确的,但我想知道如何测试(通常)是否会生成/修改新文件。在构建具有创建/修改文件的副作用的应用程序时,我们是否必须接受这样一个事实:如果不实际运行代码,然后亲自查看,我们就无法确定它是否有效?也许我没有正确地考虑它。为什么不想在测试中转换一个真实的文件?如果您希望您的测试与实现无关,那么最好的选择是使用公共用户界面来测试您的应用程序(与真实文件的集成测试)。为了断言正确的结果,您可能需要创建一个输入文件和预期的输出文件,然后断言生成了正确的结果。你可以通过比较预期输出文件和实际输出文件的校验和来实现这一点,这应该会给你一些类似穷人的东西。谢谢大家的评论,他们帮助我确定了我的实际问题。我担心每次运行测试时生成一个新文件的开销,我唯一能想到的就是在理论上测试这个文件。显而易见的解决方案是创建该文件,测试它是否有效,然后通过编程删除该文件。我不喜欢发布这样一个模棱两可的问题。你只是想测试一个命令是否用正确的参数调用吗?因为你自己还没有实现实际的转换逻辑,所以没有理由测试它。我几乎会采取假设转换成功的方法,只是验证您是否获得了正确的输入,并在获得文件后做了正确的事情。尽管@HarrisonLucas在我当前的实现中是正确的,但我想知道如何测试(通常)是否会生成/修改新文件。在构建具有创建/修改文件的副作用的应用程序时,我们是否必须接受这样一个事实:如果不实际运行代码,然后亲自查看,我们就无法确定它是否有效?也许我没有正确地考虑它。为什么不想在测试中转换一个真实的文件?如果您希望您的测试与实现无关,那么最好的选择是使用公共用户界面来测试您的应用程序(与真实文件的集成测试)。为了断言正确的结果,您可能需要创建一个输入文件和预期的输出文件,然后断言生成了正确的结果。你可以通过比较预期输出文件和实际输出文件的校验和来实现这一点,这应该会给你一些类似穷人的东西。谢谢大家的评论,他们帮助我确定了我的实际问题。我担心每次运行测试时生成一个新文件的开销,我唯一能想到的就是在理论上测试这个文件。显而易见的解决方案是创建该文件,测试它是否有效,然后通过编程删除该文件。我不喜欢发布这样一个模棱两可的问题。