silkを使用したAPIのテスト自動化(ドキュメント駆動)Windows環境
go言語でAPIを実装した場合、REST APIテストをドキュメント駆動で行うにあたりその設定方法
APIのテストを自動化で行うにあたり、swaggerを使用していた為、当初はdreddで行うように進めていた。
ところが、dreddでswaggerを使用する所から、make all した場合、予期せぬ動作が起こりえた為
(swaggerの.gitkeepが消える)現象が起きた為、本来のAPIが動作しなくなる。
その為、swaggerを使用したテストは避けるべく、今回のsilkを使用することにした。
前提条件
1 既にgoで実装したAPIが存在すること
2 make allが実行できる環境であること
$ go get github.com/matryer/silk
$ make all
main.goと同じ階層に、test.silk.md ファイルを作成する
test.silk.md
# TEST API
## `GET /v1/project/1111`
Gets a personalised greeting.
===
* Status: `200`
{"id":22777}
テストするAPIを起動させておく
テスト実行
$ silk -silk.url="http://localhost:8080" test.silk.md
テストFAILした場合
silk: running 1 file(s)...
body expected:
{"id":22777}
actual:
{"id":22222}
--- FAIL: GET /v1/profiles/1326219617999257600
test.silk.md:14 - body doesn't match
--- FAIL: silk (0.34s)
FAIL
*値が同じでも、FAILになる場合がある。これは改行コードが違うためにFAILとなっているので、一度改行コードを確認するとよい
テストPassした場合
silk: running 1 file(s)...
PASS
POST等の書き方は下記にあります。
https://github.com/matryer/silk
GETは良いがPOSTでcreated_Atなんかを取得する場合、created_Atのチェックを外す方法
POSTとなると、idのインクリメント等や、created_Atなどで答えの見えない値がある。
この場合、照合したいキーvalueのみを書いておき、idやcreated_Atなんかはkey,valueは書かないでおく。
但し、その際は、
json(strict)
を記載しておく。
```json(strict)
backtics の書き方がわからないので、こんな感じで書いておく。
Author And Source
この問題について(silkを使用したAPIのテスト自動化(ドキュメント駆動)Windows環境), 我々は、より多くの情報をここで見つけました https://qiita.com/oishis/items/e25e6ecfccbe7c0967c6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .