测试函数,需要*os.File作为参数。

huangapple go评论79阅读模式
英文:

Test function which requires *os.File as argument

问题

我想为下面的函数编写一个测试,但是我不知道我可以发送什么参数给 toCount 函数,因为我不想打开/创建一个文件,我知道 os.Stdin 可以工作,但我认为你不允许向其中写入。

func toCount(f *os.File) int {
  input := buffo.NewScanner(f)
  sum := 0;
  for input.Scan() {
    sum++
  }
  return sum
}

请注意,我只会翻译代码部分,不会回答关于翻译的问题。

英文:

I would like to write a test for the bellow function, but I can't understand what I can send as an argument to toCount, because I don't want to open/create a file, I know that os.Stdin will work, but I think you're not allowed to write into it.

func toCount(f *os.File) int {
  input := buffo.NewScanner(f)
  sum := 0;
  for input.Scan() {
    sum++
  }
  return sum
}

答案1

得分: 2

您的toCount函数只需要一个io.Reader参数。如果您将函数签名更改为:

func toCount(f io.Reader) int

它就可以接受一个*os.File和任何其他类型的读取器,您可以使用它们进行测试。

英文:

Your toCount function only requires an io.Reader. If you change the signature to

func toCount(f io.Reader) int

It can accept an *os.File and any other kind of reader you want to use to test.

huangapple
  • 本文由 发表于 2015年12月23日 06:51:13
  • 转载请务必保留本文链接:https://go.coder-hub.com/34425754.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定