Reactjs 为什么条件渲染测试没有失败?

Reactjs 为什么条件渲染测试没有失败?,reactjs,enzyme,Reactjs,Enzyme,我有一个typescript react组件,如果未定义或为零,则不应显示数字: import * as React from "react"; export class NoZero extends React.Component<{ number?: number }, {}> { render() { return ( <div> {this.props.number &&am

我有一个typescript react组件,如果未定义或为零,则不应显示数字:

import * as React from "react";

export class NoZero extends React.Component<{ number?: number }, {}> {
    render() {
        return (
            <div>
                {this.props.number && this.props.number > 0 && <div className="number">{this.props.number}</div>}
            </div>
        );
    }
}

这些测试都是成功的。如果浏览器显示0,为什么第二次测试没有失败?

这就是
&&
的工作原理。它返回第一个假操作数

console.log(0&&true)

log(true&&0)
这就是
&&
的工作原理。它返回第一个假操作数

console.log(0&&true)
console.log(true和&0)
import { expect } from "chai";
import "mocha";
import * as React from "react";
import { shallow } from "enzyme";
import { NoZero } from "./NoZero";

describe("NoZero", () => {
    it("should show not undefined", () => {
        const wrapper = shallow(<NoZero number={undefined} />);

        expect(wrapper.find(".number")).to.have.length(0);
    });

    it("should not show '0'", () => {
        const wrapper = shallow(<NoZero number={0}/>);

        expect(wrapper.find(".number")).to.have.length(0);
    });

    it("should show other numbers", () => {
        const wrapper = shallow(<NoZero number={2} />);

        expect(wrapper.find(".number")).to.have.length(1);
    });
});