Java, EvoSuiteによる単体テストコードの自動生成

[github] https://github.com/chronos2015/samples/tree/master/java/codes/04.EvoSuite

現時点では、特に書くべきことはないのかな

気になるのは、SQLの発行を含むプログラムの単体テストがどこまで行えるかという点かな。

データパターンとかどこまで考慮できるのかというとかなり怪しい。

というか考慮されないと考えるのが自然だろう。

[github] https://github.com/chronos2015/samples/tree/master/java/codes/05.EvoSuite

gradleのサンプルを追加

EvoSuiteのコマンドラインツールをどこに配置すべきかはすこし検討すべき課題かもしれない

java,csv

[github] https://github.com/chronos2015/samples/tree/master/java/codes/01.csv

CSVの読み込みはどうすると良いのかなと思ったら、apache commonsにcsvを読み取るライブラリがあるようなんで簡単なサンプルを書いてみた。

// CSVファイルを開いて1行書き込む
try (CSVPrinter printer = new CSVPrinter(new FileWriter("csv.txt"), CSVFormat.RFC4180)) {
    printer.printRecord("sample", "1", "2", "3", "4");
}

// CSVファイルを開いて、全部読み込む
try (CSVParser parser = new CSVParser(new FileReader("csv.txt"), CSVFormat.EXCEL)) {
    List<CSVRecord> record = parser.getRecords();
    if(record.get(0).get(0) == "sample") {
        System.out.println("success");
    }
}

Go言語, Web dev

[github] https://github.com/chronos2015/samples/tree/master/golang/04.webdev

package main

import (
	"fmt"
	"os"

	"github.com/studio-b12/gowebdav"
)

func main() {
	fmt.Println("start")

	client := gowebdav.NewClient("接続URL", "ログインID", "パスワード")
	err := client.Connect()
	if err != nil {
		panic(err)
	}

	// ファイル一覧
	// /から始まる絶対パスを指定すべきらしい
	list, err := client.ReadDir("/")
	if err != nil {
		panic(err)
	}
	for i, file := range list {
		fmt.Printf("%02d,%s\n", i, file.Name())
	}

	// フォルダ作成
	// ※存在するフォルダを再度作成してもエラーにならない.
	// ※ファイルが存在するフォルダを再作成しても問題なし
	err = client.Mkdir("cyndi", 0755)
	if err != nil {
		panic(err)
	}

	// ファイル書き込み
	// ※存在しないフォルダに書き込むとエラーになる.
	err = client.Write("/first.txt", []byte("おはよう"), 0755)
	if err != nil {
		panic(err)
	}

	// ファイル読み込み
	// ファイルが存在しない場合に対応
	data, err := client.Read("/first.txt")
	if err != nil {
		if _, ok := err.(*os.PathError); ok {
			data = []byte{}
		} else {
			panic(err)
		}
	}
	fmt.Printf("%s\n", data)

	// ファイル名変更
	err = client.Rename("/first.txt", "/secound.txt", false)
	if err != nil {
		panic(err)
	}

	fmt.Println("end")
}

Go言語,メール送信

[github] https://github.com/chronos2015/samples/tree/master/golang/03.sendMail

Go言語で意外と面倒なのがメール送信だったりする。

テキスト形式なのか、HTML形式なのか、添付ファイルはあるのかでいろいろ判断しながらメール本文を作らなきゃいけないのが意外と面倒。

Go言語,Goland,helloworld

[github] https://github.com/chronos2015/samples/tree/master/golang/01.goland

Golangを使ってみた。

.idea以下に多数のファイルが作成されてしまうのは、IntellijIDEAからの伝統なのかな…。

vscodeでGo言語を書くのに比べて、どんなメリットがあるのかは要検証というところかな。