Javascript 使用酶将重复动作作为道具传递
我应该如何在酶测试中使用道具将重复操作传递给组件 这就是我现在所拥有的,它似乎不能正常工作Javascript 使用酶将重复动作作为道具传递,javascript,reactjs,unit-testing,redux,enzyme,Javascript,Reactjs,Unit Testing,Redux,Enzyme,我应该如何在酶测试中使用道具将重复操作传递给组件 这就是我现在所拥有的,它似乎不能正常工作 import Flag from "./Flag"; import FlagImage from "./FlagImage"; import * as actions from "../../actions/auth"; test("Flag changes the language after click", () => { const flag = shallow(<Flag aut
import Flag from "./Flag";
import FlagImage from "./FlagImage";
import * as actions from "../../actions/auth";
test("Flag changes the language after click", () => {
const flag = shallow(<Flag authActions={actions} />);
flag.find(".flag2").simulate("click");
flag
.findWhere(FlagImage => !FlagImage.prop("big") && FlagImage.prop("name") === "DE")
.parent()
.simulate("click");
expect(flag.state().open).toEqual(false);
expect(flag.find(FlagImage).prop("name")).toEqual("DE") ;
从“/Flag”导入标志;
从“/FlagImage”导入FlagImage;
从“../../actions/auth”导入*作为操作;
测试(“单击后标志更改语言”,()=>{
常量标志=浅();
flag.find(“.flag2”).simulate(“单击”);
旗帜
.findWhere(FlagImage=>!FlagImage.prop(“大”)和&FlagImage.prop(“名称”)==“DE”)
.parent()
.模拟(“点击”);
expect(flag.state().open).toEqual(false);
expect(flag.find(FlagImage.prop(“name”)).toEqual(“DE”);
第二个expect()返回US,这是默认值,因此操作不会被触发。第一个expect()会通过,这意味着该标志实际上已被单击。Redux操作通常是“已连接的”在redux的
mapDispatchToProps
中连接装修器,或通过redux钩子在内部使用。很难说您的问题是否与redux有关。您在调试过程中做了什么?浅层安装是否实际呈现FlagImage
?我怀疑没有。请尝试控制台.log(flag.debug())
查看包装器的实际功能。使用console.log(flag.debug())
根本不记录任何内容…关于呈现FlagImage,我不太确定,但这是文档中的方式。这很愚蠢,但控制台日志在测试时似乎是异步的,因此如果在输出刷新到屏幕之前测试完成,则有时不显示输出。在这些情况下,我会复制3-5个控制台日志,因此可能会显示其中一个。浅装载不会呈现子项,因此它取决于您的标志组件结构。