Reactjs jest-嵌套在React SFC组件中时,快照中未生成连接的组件?

Reactjs jest-嵌套在React SFC组件中时,快照中未生成连接的组件?,reactjs,react-redux,jestjs,Reactjs,React Redux,Jestjs,我有一个证监会的组成部分。最近我添加了一个特性,最简单的方法是将连接的组件嵌套在这个SFC(无状态功能组件)组件中 我可以让应用正常运行,但快照测试失败,因为快照中未生成连接的组件 日志: -快照 +收到 @@ -95,10 +95,12 @@ > + + 某些组件: class SomeComponent extends React.Component<IStateProps> { public render() {// render code} fu

我有一个证监会的组成部分。最近我添加了一个特性,最简单的方法是将连接的组件嵌套在这个SFC(无状态功能组件)组件中

我可以让应用正常运行,但快照测试失败,因为快照中未生成连接的组件

日志:

-快照
+收到
@@ -95,10 +95,12 @@
>
+
+          

某些组件:

class SomeComponent extends React.Component<IStateProps> {
  public render() {// render code}

function mapStateToProps(state: IRootState): IStateProps {
  return {// code}

export default connect<IStateProps>(mapStateToProps)(SomeComponent);
类SomeComponent扩展React.Component{
公共呈现(){//render code}
函数MapStateTrops(状态:IRootState):iStateTrops{
返回{//code}
导出默认连接(MapStateTops)(SomeComponent);
我是个新手。我不确定在SFC中嵌套一个有状态组件是否有意义,但这样做确实有效。只是测试失败了

所以我的问题是

  • 在SFC组件中嵌套一个有状态组件是一种好的做法吗?如果不是,有什么更好的方法

  • 如果可以这样做,如何进行快照测试


由于您将组件包装在connect中,因此它就像是一个用于jest的新组件。您需要更新快照。

我更新了快照,但没有显示该组件。您的意思是在快照中看不到您的
SomeComponent
。上面的快照是针对
SomeComponent
的父组件的。您可以这样做吗ht希望捕获单独的快照作为对
SomeComponent
的测试。是的,我没有看到任何与
SomeComponent
相关的内容。因此我只导出了连接的组件,而没有导出底层的表示组件。测试失败,因为快照不包含“
”但是收到的值是。我不知道为什么快照既不包含连接的组件,也不包含类似
的内容。快照不应该反映代码更改吗?如果快照在更新后没有元素,这不意味着元素丢失了吗?您使用
shallow()
,不是吗?@skyboyer我正在使用它,这是预期的。所以要么使用完全渲染,要么处理它(并单独测试组件)。我相信以后的选项更好。
class SomeComponent extends React.Component<IStateProps> {
  public render() {// render code}

function mapStateToProps(state: IRootState): IStateProps {
  return {// code}

export default connect<IStateProps>(mapStateToProps)(SomeComponent);