应用表面积

在最基本的层面上,验收测试基本上是黑盒测试,它从根本上关注测试封闭系统的输入和输出。因此,验收测试有三个基本功能:定位资源,读取数据和写入数据。对于浏览器和 Web 应用程序,这三个功能基本上归结为以下内容:

  1. 加载网页或应用程序视图
  2. 检查用户界面元素(即 DOM)
  3. 触发事件/模拟用户交互

我们称之为应用程序的表面区域。表面区域是用户看到或体验的任何东西。它是黑盒系统的外部。由于用户使用 Web 浏览器在视频屏幕上与现代 Web 应用程序交互,因此我们的表面覆盖范围由通用资源定位器(URL)和视口定义。所以我们的第一次演练开始时看起来如下:

module.exports = {
  "Hello World" : function (client) {
    client
      // the location of our Meteor app
      .url("http://localhost:3000")

      // the size of the viewport 
      .resizeWindow(1024, 768)

      // test app output
      .verify.elementPresent('h1')
      .verify.containsText('h1', "Welcome to Meteor!")
      .verify.containsText('p', "You've pressed the button 0 times")
      .verify.elementPresent('button')

      // simulate user input
      .click('button').pause(500)

      // test app output again, to make sure input worked
      .verify.containsText('p', "button 1 times")

      // saving a copy of our viewport pixel grid
      .saveScreenshot('tests/nightwatch/screenshots/homepage.png')
      .end();
  }
};