差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
rf:rf:best_practice [2017/07/16 15:14] tony [Test Structure] |
rf:rf:best_practice [2019/07/12 09:57] tony |
||
---|---|---|---|
行 39: | 行 39: | ||
* 當Test第一層Keyword夠淺顯易懂後,Test本身應不需特別寫文件的。 | * 當Test第一層Keyword夠淺顯易懂後,Test本身應不需特別寫文件的。 | ||
* 在寫測試時,常會把相關的assertion放在同一個testcase中,這會因前面的錯而無法得知後面的是否正確。Data-Driven的方式也許可以解決這問題,但在keyword的設計上,就要仔細思考了;另外個方法就是一個測試驗證一個主要目標,但Testsuite的粒度就很重要了,否則會讓測試數量變得非常龐大。 | * 在寫測試時,常會把相關的assertion放在同一個testcase中,這會因前面的錯而無法得知後面的是否正確。Data-Driven的方式也許可以解決這問題,但在keyword的設計上,就要仔細思考了;另外個方法就是一個測試驗證一個主要目標,但Testsuite的粒度就很重要了,否則會讓測試數量變得非常龐大。 | ||
- | * Gherkin Style的作法會產生大量的新keyword,Robotframework本身提供兩個方法可減少此問題: | + | * Gherkin Style的作法會產生大量的新keyword,Robotframework本身提供兩個方法可減少此問題([[http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#behavior-driven-style|reference]]): |
- | - test1 | + | - Ignoring Given/When/Then/And/But prefixes: 舉例來說,keyword名稱假設為User login,你可以寫成Given User Login,也可以寫成When User Login。 |
- | - test2 | + | - Embedding data to keywords: 舉例來說,通常都是以參數型式寫成Click Element | ${link},現在也可以寫成Click ${link}。這讓你keyword更像是一個句子。 |
=== 練習 === | === 練習 === | ||
<code> | <code> | ||
行 93: | 行 93: | ||
* [[http://www.jollen.org/blog/2014/11/mokoversity-farm-1.html|BDD]] | * [[http://www.jollen.org/blog/2014/11/mokoversity-farm-1.html|BDD]] | ||
* [[http://docs.behat.org/en/v2.5/guides/1.gherkin.html|Gherkin language]] | * [[http://docs.behat.org/en/v2.5/guides/1.gherkin.html|Gherkin language]] | ||
- | * [[https://github.com/cucumber/cucumber/wiki/Given-When-Then|Given-When-Then]] | ||
* [[http://martinfowler.com/bliki/GivenWhenThen.html|GivenWhenThen]] | * [[http://martinfowler.com/bliki/GivenWhenThen.html|GivenWhenThen]] | ||
* [[https://sukesh15.gitbooks.io/cucumber-jvm-test-framework-/content/cucumber_-_more_details/data_driven_testing_using_cucumber.html|data-driven testing using cucumber]] | * [[https://sukesh15.gitbooks.io/cucumber-jvm-test-framework-/content/cucumber_-_more_details/data_driven_testing_using_cucumber.html|data-driven testing using cucumber]] |