应用表面积
在最基本的层面上,验收测试基本上是黑盒测试,它从根本上关注测试封闭系统的输入和输出。因此,验收测试有三个基本功能:定位资源,读取数据和写入数据。对于浏览器和 Web 应用程序,这三个功能基本上归结为以下内容:
- 加载网页或应用程序视图
- 检查用户界面元素(即 DOM)
- 触发事件/模拟用户交互
我们称之为应用程序的表面区域。表面区域是用户看到或体验的任何东西。它是黑盒系统的外部。由于用户使用 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();
}
};