Reactjs 在测试React应用程序时,storybook的作用

Reactjs 在测试React应用程序时,storybook的作用,reactjs,storybook,Reactjs,Storybook,我对React还不熟悉,最近我发现有一个叫做storybook的工具,它基本上可以帮助我们单独测试React组件。但是,我还发现,在测试React应用程序时,会使用storybook,也就是说,会比较快照。问题是测试快照差异的原因是什么?我的意思是,我们是否创建了某个组件并为其创建了快照,以确保其他开发人员不会意外更改该组件,也就是说,storybook中的快照帮助我们确保我们创建的组件不会意外更改。这是真的吗 创建快照测试以确保组件在给定特定输入的情况下正确呈现 这是一种确保代码仍按预期方式运

我对React还不熟悉,最近我发现有一个叫做storybook的工具,它基本上可以帮助我们单独测试React组件。但是,我还发现,在测试React应用程序时,会使用storybook,也就是说,会比较快照。问题是测试快照差异的原因是什么?我的意思是,我们是否创建了某个组件并为其创建了快照,以确保其他开发人员不会意外更改该组件,也就是说,storybook中的快照帮助我们确保我们创建的组件不会意外更改。这是真的吗

创建快照测试以确保组件在给定特定输入的情况下正确呈现

这是一种确保代码仍按预期方式运行的方法。这是为了确保您不会意外地破坏代码库中的某些内容,同时也可以在任何更改时提醒您

例如:

假设我有一个名为ProfileLink的组件,它生成指向用户帐户的链接:

function ProfileLink(props) {
  return <a href ={get_url(user.id)}>{props.user.profileName}</a>;
}
现在,为了确保ProfileLink始终工作,我可以创建快照,并且每次测试运行时,都会将快照与当前呈现的组件进行比较


假设有人要更改
get\u url
函数,他们可能不知道它在
ProfileLink
中使用,但一旦运行测试,您就会知道
ProfileLink
组件中也发生了更改。

你好,Nico,感谢您的友好回答,只有一个问题,快照测试对实际项目真的很重要吗?进行快照测试是一种最佳实践吗?谢谢你,可以。您应该始终努力拥有经过良好测试的代码库。在我看来,快照测试可能非常有用,但也可能做得过火。对于一个非常容易受到微小变化(例如视觉变化)影响的代码库,维护起来可能会很麻烦,因为您会得到很多失败的测试,这些测试不一定是坏的。我通常更关注整个项目的端到端测试,以及重要组件的快照测试。
function get_url(id) {
    return "www.example.com/user/" + id;
}