我有一些按顺序运行的简单规范。第一个对网页标题有一个private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1)
{
dataGridView1.Rows[e.RowIndex].Cells[14].Value =
((Convert.ToDecimal(dataGridView1.Rows[e.RowIndex].Cells[3].Value)) * (Convert.ToDecimal(dataGridView1.Rows[e.RowIndex].Cells[7].Value))
- Convert.ToDecimal(dataGridView1.Rows[e.RowIndex].Cells[13].Value));/*taxable*/
}
断言 - 第二个断言。
然而,当我运行序列时,第一个断言通过,但第二个断言失败,console.log显示第一个规范expect
的部分已与第二个规范的expect
合并。 / p>
我有一种感觉这与承诺有关...请有人确认一下(或否认它!!)并建议如何结束承诺?
由于
第一个规范
expect
第二个规范
describe('JL Homepage', function() {
//browser.waitForAngularEnabled(false);
browser.get('https://mwac-johnlewis-dev.digitalbridge.eu/landing');
browser.sleep(10000);
it('should have a title', function(){
expect (browser.getTitle()).toBe('John Lewis Wallpaper Visualiser:
Welcome');
});
});
控制台
describe('Demo photo', function() {
browser.waitForAngularEnabled(false);
browser.sleep(3000);
element(by.xpath('html/body/webapp-app/div/div/webapp-johnlewis-landing/div/div/ul/li[2]/a/span')).click();
it('should load a demo room', function(){
expect (browser.getTitle()).toEqual('John Lewis Wallpaper Visualiser: Design your room');
browser.sleep(3000);
});
});
答案 0 :(得分:1)
您需要将所有操作包装在有效的Jasmine块中。
查看an introduction of Jasmine with examples here和latest API description here。
作为补充: browser.get()
总是有点难以处理,因为量角器无法知道,如果要加载的页面包含Angular。因此,在页面完全加载之前,测试执行可以继续。
为防止执行过快,请使用ExpectedConditions
和browser.wait()
在这里,我建议第一个规范:
describe('JL Homepage', function() {
//possibility for beforeAll(), beforeEach(), afterAll(), afterEach()
it('should load the page and have a title', function(){
var EC = protractor.ExpectedConditions;
browser.get('https://mwac-johnlewis-dev.digitalbridge.eu/landing');
//wait until URL has changed
browser.wait(EC.urlIs('https://mwac-johnlewis-dev.digitalbridge.eu/landing'),5000);
//wait until page has finished loading
browser.waitForAngular();
expect (browser.getTitle()).toBe('John Lewis Wallpaper Visualiser: Welcome');
});
});