gpt4 book ai didi

testing - 我正在尝试编写一个测试以确保文本文件中有内容,但它一直失败,我不确定问题出在哪里?

转载 作者:行者123 更新时间:2023-11-28 21:17:09 25 4
gpt4 key购买 nike

所以我正在尝试在我的 Elixir 项目中编写一个测试,以确保 txt 文件中有内容。但是,每次我尝试在代码中以不同的方式表达测试,或者当我更改函数时,它总是失败。我很迷茫,我该怎么办?

我尝试使用 Enum.count/1 函数,但编译器告诉我我有一个错误的函数。然后我尝试向 Enum.count/1 函数添加一个 assert 命令,我想也许我需要添加它,但编译器说 assert_Enum 不存在。

def read_memberlist do
load_from_file "test/memberemaillist.txt"
end

test "that there is one member email in memberlist.txt file" do
ClientEmailCleaner.read_memberlist()
|> Enum.count(1)
|> assert_Enum.count
end

我希望当我编写 Enum.count 时,它会计算文本文件中的内容。然而,它失败了,编译器说有一个“坏函数错误”。接下来,我尝试添加断言命令,但编译器告诉我,我编写的命令“assert_Enum.count”不存在。

最佳答案

不确定您为什么要尝试使用 Enum.count 来测试 txt 文件中是否有内容。如果你的 txt 文件是空的 File.read!将返回一个空字符串“”。也许你可以用

的形式写一些惯用的 Elixir
{:ok, content}, {:error, reason}

你的模块可以这样写。

defmodule ClientEmailCleaner do

def read_memberlist do
memberlist = File.read!("test/member_email_list.txt")
read_memberlist(memberlist)
end

defp read_memberlist(memberlist) when memberlist == "" do
{:error, "File is empty"}
end

defp read_memberlist(memberlist) do
{:ok, memberlist}
end

end

然后在您的测试文件中,您可以编写涵盖这两种情况的测试。 txt文件是否有内容都会通过。

  test "returns content or error from memberlist.txt" do
case ClientEmailCleaner.read_memberlist do
{:ok, content} ->
assert content

{:error, reason} ->
assert reason
end
end

关于testing - 我正在尝试编写一个测试以确保文本文件中有内容,但它一直失败,我不确定问题出在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56031006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com