加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 量角器/茉莉花条件测试案例

发布时间:2020-12-17 17:22:03 所属栏目:安全 来源:网络整理
导读:与此问题相关: How can I create conditional test cases using Protractor? – 我很好奇是否对这些场景有合理的(记录的)答案,因为我无法得到直接答案. 虽然链接问题中发布的忽略解决方案有效,但从风格上来说,我并不喜欢它.乍一看,它看起来像是在忽略/跳过
与此问题相关: How can I create conditional test cases using Protractor? – 我很好奇是否对这些场景有合理的(记录的)答案,因为我无法得到直接答案.

虽然链接问题中发布的忽略解决方案有效,但从风格上来说,我并不喜欢它.乍一看,它看起来像是在忽略/跳过规范.

另外,我在Gitter问了这个问题 – 下面的代码是不好的做法?

if(questionAnswer == "Yes") {
   it('should display another question',function() {
       // code
   });
}

我从量角器团队的人那里收到的Gitter答案相当含糊:

this might lead to flaky tests… I don’t think there’s anything that says it is not bad practice. If it is working for you,then run with it.

我对这个答案并不满意,因为他开始说“可能是片状的……”这对我来说听起来并不稳定.我看到的唯一选择是在规范中创建条件正常,并创建一个任意断言来捕获else场景,即:

it('should display another question',function() {
    if(questionAnswer == "Yes") {
        expect(question2.isDisplayed()).toBe(true);
    }
    else {
        expect(true).toBe(true);
    }
});

但是当我只需要50%的时间时,我会自动添加一个额外的测试用例.我知道这是一个小问题,但它确实困扰我.

上面的代码是我目前面临的情况 – 如果最后一个规范回答“是”,我需要为下一个问题运行一个额外的规范.如果没有,那就是我测试的结束.是否真的没有正式的方法来有条件地运行Jasmine / Protractor中的规范?

解决方法

在这些情况下,我使用所谓的上下文.通常,上下文用于表示影响您正在测试的代码行为的状态更改.

虽然在Jasmine中没有明确提供,但它们确实存在于其他BDD风格的测试框架中,如Rspec(related reference).通常,上下文只是描述的别名.

所以在Jasmine中,我将使用describe和我的测试结构如下:

describe('someMethod',function() {
    describe('when a privileged account',function() {
        beforeEach(function() {
           questionAnswer = "Yes";
           someMethod();
        });

        it('should do something',function() {
            // expectation
        }
    });

    describe('when not a privileged account',function() {
        beforeEach(function() {
           questionAnswer = "No";
           someMethod();
        });

        it('should do something else',function() {
            // expectation
        }
    });
);

我避免“条件测试”.我宁愿运行更多的测试来确保我已经耗尽了所有的代码路径.此外,我发现测试更具可读性,这是BDD风格测试的目标之一.

最后,为测试添加逻辑是人们走上测试测试的荒谬道路的一个原因.然后测试测试测试的测试.然后…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读