3
要有耐心我是量角器新手。角度量角器如何測試點擊重定向狀態
我有這樣的代碼:
angular.module('my.users')
.controller('SessionSigninController', ['$scope', '$rootScope', 'Users', '$state',
function($scope, $rootScope, Users, $state) {
$scope.user = {};
$scope.errors = [];
$scope.save = function() {
Users.signin($scope.user).then(
function(data) {
if(data.success){
$rootScope.$emit('loggedin',data.user);
return $state.go('home');
}
$scope.errors = data.errors;
}
);
};
}
])
我測試它像(綠色條):
describe('users :', function() {
describe('register', function() {
beforeEach(function() {
browser.get('/#!/user/register');
});
it('btn should be disabled', function() {
var btn = element(by.css('button.btn-primary'));
expect(browser.isElementPresent(btn)).toBe(true);
expect(btn.isEnabled()).toBe(false);
});
it('btn should be enabled', function() {
var btn = element(by.css('button.btn-primary'));
element(by.model('user.fullname')).sendKeys('test user');
element(by.model('user.email')).sendKeys('[email protected]');
element(by.model('user.username')).sendKeys('testusere');
element(by.model('user.password')).sendKeys('testsecret');
element(by.model('user.password_confirmation')).sendKeys('testsecret');
expect(browser.isElementPresent(btn)).toBe(true);
expect(btn.isEnabled()).toBe(true);
btn.click();
expect(browser.getCurrentUrl()).toMatch(/\/#!/);
});
});
});
- 它是測試 '重定向',以正確的方式家?
- 爲什麼即使表格無效(電子郵件唯一)測試是綠色的?
- 有沒有辦法模擬測試?
END UP(見回覆)
describe('users :', function() {
describe('register', function() {
beforeEach(function() {
browser.get('/#!/user/register');
});
it('btn should be disabled', function() {
var btn = element(by.css('button.btn-primary'));
expect(browser.isElementPresent(btn)).toBe(true);
expect(btn.isEnabled()).toBe(false);
});
it('btn should be enabled', function() {
var random = ~~(Math.random() * 1000);
var btn = element(by.css('button.btn-primary'));
element(by.model('user.fullname')).sendKeys('test user');
element(by.model('user.email')).sendKeys('test'+random+'@test.io');
element(by.model('user.username')).sendKeys('testuser'+random);
element(by.model('user.password')).sendKeys('testsecret');
element(by.model('user.password_confirmation')).sendKeys('testsecret');
expect(browser.isElementPresent(btn)).toBe(true);
expect(btn.isEnabled()).toBe(true);
btn.click();
expect(browser.getCurrentUrl()).toMatch(/\/#!\/$/);
var userMenu = element.all(by.css('ul.dropdown-menu li'));
expect(userMenu.count()).toBe(3);
});
});
});