期望用量角器和茉莉花来测试网址#fragment

Sca*_*ght 4 javascript jasmine angularjs protractor

我正在尝试使用量角器(使用jasmine)为我的Web应用程序执行一些功能测试,我遇到的一个问题是:

如何检查我的网址中的当前哈希值(#fragment)是什么?

例如,使用browser.get('/')它,它应该导航到http://localhost:8000/#/url ...其中#/是未启用html5模式时由angular使用的url #fragment(散列).

browser.getCurrentUrl()将返回因为绝对的URL http://,而不只是片段,我想测试.

有没有办法以正确的方式测试这个案例?

我希望做这样的事情:

browser.get('/');
expect(browser.getCurrentUrlFragment()).toBe('#/');

browser.get('/user/');
expect(browser.getCurrentUrlFragment()).toBe('#/user');
Run Code Online (Sandbox Code Playgroud)

那可能吗?

谢谢.

ale*_*cxe 6

多个匹配器可在这种情况下使用,例如toMatch()$在末端:

expect(browser.getCurrentUrl()).toMatch(/#\/user$/);
Run Code Online (Sandbox Code Playgroud)

或者,toEndWith()来自jasmine-matchers第三方的匹配器:

expect(browser.getCurrentUrl()).toEndWith("#/user");
Run Code Online (Sandbox Code Playgroud)

toContain()也可以使用内置函数,但这不会强制在字符串末尾预期的子字符串:

expect(browser.getCurrentUrl()).toContain("#/user");
Run Code Online (Sandbox Code Playgroud)