0
私は奇妙な問題に遭遇しました。私のログメッセージによれば、私がテストしている機能は正しく動作していますが、それを供給しようとしているアサーションを無視しているようです。試験を約束するときのジャスミン無視試験
これは、テスト対象のメソッドです:
getSessionContext(): Promise<ISessionContext> {
let query = '{\
user {\
userId\
clientId\
partnerId\
userType\
visibleId\
firstName\
lastName\
emailAddress\
profileImageUrl\
}\
partner {\
id\
clients {\
clientId\
partnerId\
clientName\
}\
}\
}';
let success = action("AuthService.getSessionContext", (sessionContext: ISessionContext) => {
if (!sessionContext.user) {
throw new Error('Request failed');
}
this.sessionContext = sessionContext;
this.userInfo = sessionContext.user;
this.activeClientId = this.userInfo.clientId; //default to primary client
this.isLoggedIn = true;
return sessionContext;
});
return this.graphQLService.query({query}, {unscoped: true})
.then(success, (data) => {
console.error('Unable to get session information', data);
}) as Promise<ISessionContext>;
}
と、これは私の現在の仕様である:
fdescribe('::getSessionContext',() => {
it('returns a valid sessionContext',() => {
spyOn(svc.graphQLService, 'query').and.returnValue(promise_STUB);
console.log(`sessionContext BEFORE ${JSON.stringify(svc.sessionContext)}`);
expect(svc.sessionContext.user).toBeFalsy();
console.log(`userInfo BEFORE ${JSON.stringify(svc.userInfo)}`);
svc.getSessionContext().then
(
(result) => {
console.log(`****************************`);
console.log(`final result ${JSON.stringify(result)}`);
console.log(`sessionContext AFTER ${JSON.stringify(svc.sessionContext)}`);
expect(svc.sessionContext.user).toEqual({});
console.log(`userInfo AFTER ${JSON.stringify(svc.userInfo)}`);
expect(svc.userInfo).toEqual(promiseValue.user);
//FIXME expect statements are being ignored
expect(true).toBeFalsy();
done();
}
);
});
});
これは、端末出力されます:
LOG: 'sessionContext BEFORE {"partner":{"clients":[{"clientId":1234},
{"clientId":1235},{"clientId":1236},{"clientId":1237}]}}'
LOG: 'userInfo BEFORE {"partnerId":1234,"clientId":1235}'
LOG: '****************************'
LOG: 'final result {"user":{}}'
LOG: 'sessionContext AFTER {"user":{}}'
LOG: 'userInfo AFTER {}'
あなたが見ることができるように、端末出力は機能が動作していることを確認します。しかし、私がしようとする期待声明を完全に無視しています。これがなぜ起こっているのかについてのアイディアはありますか?
ああ男であることを
it('returns a valid sessionContext',() => {
を変更してみてください、私はそれを逃した信じることができません。ありがとう! –