SelenideのQuick Startをやっていて、Assertionメソッドにshould、shouldBe、shouldHaveの3種類(と否定を表現するshouldNot、shouldNotBe、shouldNotHaveの3種類)があり、使い分けがよく分からなかったのでそれを整理したメモです。
違い
まず、自分の英語力が足りていませんでした。
以下のやりとりでもある通り、should、shouldBe、shouldHaveは同義語となるため違いはありません。
ただ、Selenideを使ってテストコードを書く場合、この3つの使い分けは「英語として自然でありより読みやすい形となるものを選択して使う」が使い分けるポイントとなるようです。ちなみに、公式ドキュメントにもその旨の記載があります。
We recommend to choose the convenient alias so the line of code can be easily read like a common english phrase
ちなみに、「should be text」というのは英語の文法として正しくありませんが、以下のコードのようにshouldBe Textという使い方をしてもコンパイルエラーにはなりませんし、テストもパスします。
$(By.id("agree_and_goto_next")).shouldBe(text("NEXT"));
英語力が問われるところでもあるのかなと思いました。
参考
以上です。