Coder Social home page Coder Social logo

Comments (13)

tabbyz avatar tabbyz commented on July 30, 2024 2

ふと思ったのですが、@RustyNailさんの要望は「複数行のテスト書きたい」というより「テスト手順と期待値を分けて書きたい」ということですよね。

であれば、この記事のような記法を仕様に追加するのが自然で良い気がします。

# ログイン画面
## ログイン機能
- 正しいメールアドレスとパスワードを入力してログインボタンをタップする
  - ホーム画面に遷移すること

※先頭が ハイフン の場合は**「手順」で、先頭が 半角スペース+ハイフン の場合は「期待値」**とみなす。

そのうえで、下記のように現在の仕様も残しておけば既存ユーザへの混乱も無いですし。

# ログイン画面
## ログイン機能
正しいメールアドレスとパスワードを入力してログインボタンをタップすると、ホーム画面に遷移すること

from chibineko.

tabbyz avatar tabbyz commented on July 30, 2024

前提手順を記載したい、または手順と期待値を分けて書きたいということですね。
以前から同様の要望は聞いており、個人的にも対応を検討しているところではありますが、なかなか仕様がまとまらず実装を見送っていました。

単純に考えると以下のような仕様が思いつきますが、どちらもイマイチですよね。
@RustyNail さんの方で何かよいアイディアはありませんか?


A. 項目をカンマ区切りなどで複数列の指定ができるようにする

Facebookアカウントを入力する, ログインボタンを押下するとXXサービスにログインできること

→ CSVを直接手書きしているようで、ユーザーフレンドリーな仕様とは言えない

B. 行頭が特定の記号の場合、テスト項目としてカウントしないようにする

> Facebookアカウントを入力する
ログインボタンを押下するとXXサービスにログインできること

→ ユーザーはグループ化の#に続いて新たな記法を覚える必要があり、直感性が失われる可能性がある。
またそれを許容するとしても、#のようにMarkdownから推測できる自然な記号が思い当たらない。
※入力のしやすさや見た目を考えると例にあげた>は悪くないが、本来のMarkdownの意味(引用)とは用途が違いすぎて直感的でない。

from chibineko.

Arakaki avatar Arakaki commented on July 30, 2024

#でコンテキストを切るのでは難しいですかね
001

from chibineko.

tabbyz avatar tabbyz commented on July 30, 2024

そうですね、今の仕様であればそれも良い方法だと思います。

from chibineko.

Arakaki avatar Arakaki commented on July 30, 2024

自分で言っておきながらですが強引に運用でカバーなのでフレンドリーでは無いですね。
現在の利用者に影響なく実装する前提だと、悩みどころですね。

他の案としては、'クォーテーション'で括るなどでしょうか。
互換無視でドラスティックにできるなら、テスト間に必ず空白行を入れる。
などでしょうか。

from chibineko.

tabbyz avatar tabbyz commented on July 30, 2024

はい、現在の利用者に影響ないというのは必須かと思います。

他の案としては、'クォーテーション'で括るなどでしょうか。

記号で括るのはアイディアにありませんでした。
ただ「クォーテーションで括る」=「手順」は、ちょっと連想しづらいですね・・・。

from chibineko.

Arakaki avatar Arakaki commented on July 30, 2024

手順を記載するというよりは、
クォーテーションでくくれば改行をテストの終わりとみなさないというイメージです
こういう落としどころもアリかなと思いました

'Facebookアカウントを入力する
ログインボタンを押下するとXXサービスにログインできること'

こう記載できると一つのテストと扱うかたちです。

from chibineko.

RustyNail avatar RustyNail commented on July 30, 2024

検討いただきありがとうございます。
私も @Arakaki さんの案に賛成です。

#5 (comment)

私の方からも1つ提案します!
今の発想とは逆で、行末の後ろに何かをつけるとOK/NGなどの結果をつけないフラグをつけるのも1つあるかなと思いました。
ただ、これだと行が多くなるとツライかもしれませんね。

from chibineko.

tabbyz avatar tabbyz commented on July 30, 2024

@Arakaki さん

クォーテーションでくくれば改行をテストの終わりとみなさないというイメージです

なるほど!良いアイディアですね。
少し気になるところとしては、下記のように単数行/複数行が入り混じった場合、記入時に見づらくないかというところですね。

レイアウトが崩れていないこと
'正しいユーザー情報を入力してログインボタン押下
ログインできること'
'誤ったユーザー情報を入力してログインボタン押下
エラーが表示されてログインできないこと'

from chibineko.

tabbyz avatar tabbyz commented on July 30, 2024

@RustyNail さん

今の発想とは逆で、行末の後ろに何かをつけるとOK/NGなどの結果をつけないフラグをつけるのも1つあるかなと思いました。
ただ、これだと行が多くなるとツライかもしれませんね。

逆転の発想ですね。
ただ、たしかに可読性には欠けそうなのと、あえて#とは異なるルールにする意味が見えにくいかもしれませんね。

from chibineko.

Arakaki avatar Arakaki commented on July 30, 2024

@tabbyz 返信おくれました、すみません。

少し気になるところとしては、下記のように単数行/複数行が入り混じった場合、記入時に見づらくないかというところですね。

仰るとおり、混乱してしまいますね。

最近Redmineのwiki記法を利用する事になって思ったのですが、
空白行をそのコンテキストの終わりとみなす、ということがあまり違和感が無いなぁと思いました。

既存ユーザさんのことも考慮すべきですが、歪な仕様を提供するよりもドラスティックにAPIを変えてもいいのでは?と思っています。

イメージは下記です。

テスト1

テスト2

テスト3

from chibineko.

tabbyz avatar tabbyz commented on July 30, 2024

歪な仕様を提供するよりもドラスティックにAPIを変えてもいいのでは?と思っています。

そうですね、私もそう思います。

空白行をそのコンテキストの終わりとみなす、ということがあまり違和感が無いなぁと思いました。

たしかにあまり違和感無いですね。

ただChibinekoの場合、「メモ帳に箇条書きにしたチェックリストがそのままテストケースになる」という手軽さ、分かりやすさが少し失われてしまう気がしますね...。

でも今までで一番よいアイディアだと思います。ありがとうございます!

from chibineko.

RustyNail avatar RustyNail commented on July 30, 2024

コメント遅くなってすみません。
はい、おっしゃる通りです!

from chibineko.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.