2017-03-10 48 views
0

根據問題的標題。爲什麼對選擇器(重新選擇庫)的測試失敗?

.../selector.js

const makeSelectUserData =() => createSelector(
    selectProfile, 
    (profileState) => profileState.get('userData') 
); 

... /測試/ selectors.test.js

it('should select the current user',() => { 
    const mockedState = fromJS({ 
     profile: { 
     userData: { 
      firstName: "X", 
      lastName: "Y", 
      gender: "Male", 
      email: "[email protected]", 
     }, 
     }, 
    }); 
    console.log(userDataSelector(mockedState)); 
    expect(userDataSelector(mockedState)).toEqual(user); 
    }); 

的console.log。 ..打印:

Map { "firstName": "X", "lastName": "Y", "gender": "Male", "email": "[email protected]" } 

因此爲什麼,但我不明白爲什麼其他選擇,其中用戶是一個字符串(例如)只是工作和選擇返回一個字符串,因爲它應該。

奇怪的是,選擇器實際上表現正確,但測試沒有。

回答

0

我找到了解決方案。

所有這一切必須是偶然想到(...

expect(userDataSelector(mockedState).toJS()).toEqual(user); 

由於f romJS()將一個對象的不可變這仍然是由選擇也返回

其他測試本機(原始)值仍然有效,因爲不可改變不會改變它們

相關問題