-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kadai2 akuchii #28
base: master
Are you sure you want to change the base?
Kadai2 akuchii #28
Conversation
return errors.New("empty arg is not allowed") | ||
} | ||
|
||
if _, err := os.Stat(srcDir); os.IsNotExist(err) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これだと画像ファイルは存在するけど読込できないパターン(例えば壊れてるとかパーミッションが無いとか)に対応できなさそう?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確認してみます!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
srcDir
が権限のないパーミッションだとos.IsNotExist(err)
がtrueにならず、srcDir
以下に画像ファイルあってもfilepath.Walk
で検出されませんでした...
指定されたsrcDir
が読み込めない場合はerrorを出してあげたほうがよさそうですね。
@@ -0,0 +1,72 @@ | |||
package converter_test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このパッケージ名にした理由が気になります。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://tech.mercari.com/entry/2018/08/08/080000
の記事を参考にして、converter
ではなくconverter_test
にしました。
converter
と別パッケージにすることでパッケージを使う人と同じ状況(exportされたものしかアクセスされない)でテストを書くことができるのが良い、という理解です。
見直してたらpackage名と変数名が被ってたので変数名変えましたa8e7884
io.Readerとio.Writerについて調べてみよう
標準パッケージでどのように使われているか
os.File, os.Stdin, os.Stdout, bytes.buffersなどデータの読み書きを行う処理の部分に使われている
io.Readerとio.Writerがあることでどういう利点があるのか具体例を挙げて考えてみる
例えばデータを読み書きする処理があったときに、io.Reader, io.Writerがあることで使う側は内部実装を知らなくても使うことができる。
内部実装を知らずに使えるので、読み書き先をDBからjson, csvなどに切り替えたい時も容易に行うことができる。
1回目の宿題のテストを作ってみて下さい
課題1でユーザ定義型を使ってなかったので、structやinterfaceを定義して書き換えてみました。
非公開なフィールドにアクセスするために
export_test.go
内でgetterを用意しました。カバレッジが可視化されることでどこがテストされてないかがわかって素晴らしかったです。どういうテストデータを用意すべきか考える助けにもなりました。