【发布时间】:2018-02-01 14:58:28
【问题描述】:
这是我的组件:
const User = ({ users }) => (
<div className="displayContainer">
{users &&
users.length > 0 &&
users[0].username ?
<div className="userOnShow">
<img className="userImage"alt="no image yet"/>
<div>{users[0].username}, {users[0].age}</div>
</div>
:
<div className="noOneLeft">
{'Sorry, no new people in your area'}
</div>
}
</div>
)
我有 2 个问题。我应该测试什么样的东西?即只是它呈现某些类等?
我假设测试三元组将是一个集成测试?
还有我的主要问题,当我这样做时:
describe.only('DisplayingUser', () => {
let wrapper;
const usersStub = {remainingUsers: []}
it('expects the props to be correct', () => {
wrapper = shallow(
<User
users={usersStub}
/>
)
const userClass = wrapper.find('.userOnShow')
console.log(userClass, 'uc');
expect(userClass.length).to.equal(1)
});
})
它没有说expected 0 to equal 1,即它没有找到我的课程,但显然它在那里?
【问题讨论】:
-
IMO - 三元组应该在你的单元测试中进行测试,因为你可以只传递存根数据,并且你想检查你的组件渲染你是否期望它。其次-您当前的存根内部没有用户-因此您将无法满足三元组第一部分的要求...因此
userClass为空。我还会考虑更明确地命名您的测试,即“期望道具是正确的”并不能真正描述您在该测试中试图实现的目标。 -
@ajmajmajma 好的,非常感谢。但是,为什么找不到类名?
-
即使我把一个假用户放在那里,它也不会显示......
-
啊让它工作了,没有正确地存根。我有机会从你那里得到更多的建议吗? @ajmajmajma 你有电子邮件、联系方式等吗?