官术网_书友最值得收藏!

Chapter 2. The Spaghetti Pattern

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."

--Martin Golding

Writing and maintaining any form of software is like fighting entropy; given enough time and changes, any code base will gradually decline into disorder. A test suite is a closed system; if you do not provide energy in constant upkeep and planning, the suite will deteriorate and will fail constantly. Every new feature and line of code added to our website makes our test suite obsolete. The only way to fight back these natural forces is to constantly upgrade and improve existing tests.

In this chapter, we will start to grow our test suite organically and take a look at an anti-pattern called the Spaghetti pattern. Along the way, we will pick up some more basic skills, such as using XPath and CSS selectors to locate the elements on a web page.

Note

The term anti-pattern was inspired by a great book on software design called Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, published by Addison-Wesley Professional and is roughly defined as a common practice, which seems appropriate for current situation, but has a lot of unintended side effects. Furthermore, a better solution for the problem does exist, but is typically ignored in favor of the initial obvious but wrong solution.

In order to write the new tests in this chapter, we will cover the following topics:

  • Spaghetti pattern
  • Element locator strategies
  • XPath and CSS selector query languages
  • Relative and absolute path
  • Browser inspector tool
  • Test run order
  • Chain Linked pattern
  • Big Ball of Mud pattern
主站蜘蛛池模板: 汉中市| 南阳市| 黄浦区| 揭东县| 电白县| 抚松县| 宁海县| 海晏县| 贡嘎县| 新乡县| 民县| 奈曼旗| 临夏县| 嘉黎县| 上高县| 曲阳县| 大渡口区| 宁海县| 红安县| 东乌珠穆沁旗| 皮山县| 九台市| 龙口市| 阿合奇县| 辉县市| 汕头市| 玛沁县| 扎兰屯市| 沅江市| 绥江县| 清徐县| 嘉兴市| 乌海市| 青州市| 新安县| 岑巩县| 金门县| 阳新县| 寿光市| 武邑县| 米林县|