会有人喜欢自动化测试代码这样的风格吗?
发布于 12 年前 作者 JacksonTian 6044 次浏览 最后一次编辑是 8 年前
var Ghost = require('webghost');

describe("Home", function () {
  var ghost;
  before(function () {
    ghost = new Ghost("Chrome", "http://url/");
  });
  after(function (done) {
    ghost.end(done);
  });
  it("Test submit", function (done) {
    ghost.click("#feedback .inner", function (isVisible) {
      // 点击建议反馈
    }).getText("#feedback .tips", function (text) {
      // 提示应该为空
      text.should.be.equal("");
    }).click("#feedback .submit", function () {
      // 点击提交按钮
    }).setValue("#feedback .entry textarea", "From automation testing.", function () {
      // 输入内容
    }).click("#feedback .submit", function () {
      // 再次点击提交按钮
    }).pause(2000, function () {
      // 暂停2秒,等待ajax提交返回
    }).getText("#feedback .tips", function (text) {
      // 提示应该为:谢谢你的反馈
      text.should.be.equal("谢谢您的反馈");
    }).pause(2500, function () {
      // 暂停2.5秒,等待面板隐藏
    }).isVisible("#feedback .entry", function (isVisible) {
      // 输入面板应该显示
      isVisible.should.be.equal(false);
    }).done(done);
  });
});
10 回复

Jasmine挺好用的,我一直用它。

这是mocha/should/webdriverjs/ghost的集合体

哦,测试提交事件么,不过你还应该加上一个类似expect(5) 表示改测试需要验证断言5次之类的东西(不知道这个测试工具有没有)

这个不需要了。

一直这么连下去会头晕吧

到不会。问题是没有分支 - -

习惯了用Gherkin 写,我真看的头晕了,虽然有中文注释。

虽不明,但觉厉

其实这个测试代码有个可能会脆弱的地方

“暂停2秒,等待ajax提交返回”

通常在UI测试中最好少用sleep这类语句来等待异步的内容,原因有二:

  1. 异步的内容有可能在2秒后还没加载完
  2. 时间设置得太少,可能会导致脚本failed,时间设置大了,浪费时间空等待
回到顶部