我有一个登录API,我在我的服务中使用它
function logInToService(callback, errback, login, password, rememberLogin) {
var url = "User/Login";
var authorizationHeader = {'Authorization': "Basic " + login + ":" + password};
httpWrapperService.post(url, {login: login, password: password}, authorizationHeader).then(
function success(loginToken) {
// transform data here
self.currentUser.emailAddress = login;
self.currentUser.password = password;
// store token in a cookie
self.currentUser.token = loginToken;
$rootScope.currentUser = self.currentUser;
if (rememberLogin) {
localStorage.userName=login;
localStorage.password=password;
}
httpWrapperService.setAuthenticationToken(loginToken);
callback(loginToken);
},
function error(errorObject) {
errback(errorObject);
}
);
}
Run Code Online (Sandbox Code Playgroud)
在我的标题html中,当他登录Header.html时,我在顶部显示用户名
<div class="header-user-menu">
<div ng-show="isUserLoggedIn() == false …Run Code Online (Sandbox Code Playgroud) 我目前正在为我的React + MaterialUi应用程序编写单元测试.
在我的应用程序中,我有一个Dialog.我想确保取决于按下对话框上的按钮:
<FlatButton
label="Cancel"
secondary={true}
onTouchTap={this._cancelDialog.bind(this)}
/>
<FlatButton
label="Submit"
primary={true}
onTouchTap={this._confirmDialog.bind(this)}
/>
Run Code Online (Sandbox Code Playgroud)
内部状态相应地改变.
不幸的是,我无法使用TestUtils.scryRenderedComponentsWithType(FlatButton)
或
scryRenderedComponentsWithTag("button")
等等来获取对话框内容
.
关于如何测试流量的任何想法?
更新1
所以,我可以通过调用TestUtils.scryRenderedComponentsWithType(对话)取得对话实例.但我无法得到对话框的内容.DOM明智的内容不会在视图内部呈现.它在文档级别(div)上的新创建节点中呈现.所以我试过这个:
let cancelButton = window.document.getElementsByTagName("button")[0];
Simulate.click(cancelButton);
Run Code Online (Sandbox Code Playgroud)
上面的例子中的cancelButton是正确的DOM元素.但是,Simulate.click不会触发组件单击功能.
对乔纳斯说
angularjs ×1
javascript ×1
logout ×1
material-ui ×1
page-refresh ×1
reactjs ×1
unit-testing ×1