zoukankan      html  css  js  c++  java
  • [React] Test friendly approach

    Add functional function such as change state, this should have tests covered.

    For example, in a component, there is a function call 'addBox':

        onAddBox = () => {
            const newBox = {
                id    : this.state.boxes.length,
                color : 'red'
            };
    
            const boxes = addBox(this.state.boxes, newBox);
    
            this.setState({ boxes });
        };

    Here we use a function call 'addBox', this is written in a new file:

    export const addBox = (boxes, newBox) => boxes.concat(newBox);

    SO when need to use it, we need to import it to the component, not just write this function into component methods. Because if we make this function sprated from component methods, we are able to test it by just simply import this function to the test file.

    import {addBox} from '../components/App/AppHelper';
    
    const boxes = [
        {
            id    : 0,
            color : 'red'
        },
        {
            id    : 1,
            color : 'red'
        }
    ];
    
    const newBox = {
        id: 2,
        color: 'green'
    };
    
    test('Should be able to add new box', () => {
       const expected = [
           {
               id    : 0,
               color : 'red'
           },
           {
               id    : 1,
               color : 'red'
           },
           {
               id: 2,
               color: 'green'
           }
       ];
       const result = addBox(boxes, newBox);
       expect(result).toEqual(expected);
    });
    
    test('addBox should be immutable', () => {
        const result = addBox(boxes, newBox);
        expect(result).not.toBe(boxes);
    });

    Here has two test, one is to test 'addBox' should actually add a new box to the existing array. Second test is to make sure we don't mutatue origianl data.

  • 相关阅读:
    doT js模板入门
    @SuppressWarnings忽略警告
    SQL注入
    【转】Oracle 执行动态语句
    连接数据库——模拟ATM机查、存、取、开户功能
    Oracle 函数中动态执行语句
    PowerDesigner建表
    数据库表设计—水电费缴费系统
    GUID全局唯一标识符相关知识了解
    Oracle数据库建表+添加数据练习
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6359101.html
Copyright © 2011-2022 走看看