party_bid_core总结

正文:

初次使用测试,party_bid_core通过一步步测试来对比三种数据结构的存储,得出其优点和不便之处.

.在三种数据结构之前,首先要在github上建立自己的分支
1.创建git的文件夹。//取名为party_bid_core
2.
登录github,点击右下侧的New repository

3.
在弹出的页面中填写Repository name,然后点击左下侧的Create repository按钮。(后会有指导性操作。)//最好分支名字为party_bid_core,方面查找
4.
terminal进入git的文件目录下,然后逐条执行3弹出的内容.

 

 

.对三种结构的总结


      第一种数据结构: 

 

activities = [
    {
        name: "first activity",
        sign_ups: [],
        bids: []
    },
    {
        name: "first activity",
        sign_ups: [
            {
                name: "仝键",
                phone: "13600000000"
            },
        ],
        bids: [
            {
                name: "竞价1",
                biddings: [
                    {
                        name: "仝键",
                        phone: "13600000000",
                        price: "12"
                    }
                ]
            },
            {
                name: "竞价2",
                biddings: [                   
                ]
            }
        ]
    }
];

 

所有的活动存在activities,每个活动都有自己的活动名,报名人信息,竞价人信息,结构很清晰.但是在存储时每次都要一层层寻找,有点繁琐.例如,如果想要存储bidding,要首先找到活动名,在此活动中找signs看是否报名,如果报名了,又要找相对应的竞价名,然后存储.

 

Bidding.save_all = function (biddings) {
    var current_bid = Bid.get_current_bid();
    var activities = Activity.get_activities();
    var current_activity = Activity.get_this_activity(activities);
    var current_activity = _.map(current_activity.bids, function (the_bid) {
        return the_bid['name'] == current_bid ? the_bid['biddings'] = biddings : '';
    });
    localStorage.setItem('activities', JSON.stringify(activities));
};

 

 

       第二种数据结构:

 

activities = {
    "0": {
        name: "first activity",
        sign_ups: [],
        bids: [],
        biddings: {}
    },
    "1": {
        name: "second activity",
        sign_ups: [
            {
                name: "仝键",
                phone: "13600000000"
            }            
        ],
        bids: ["竞价1", "竞价2"],
        biddings: {
            "竞价1": [
                {
                    phone: "13600000000",
                    price: "12"

                }               
            ],
            "竞价2": [                
            ]
        }
    }
};

 

 

         每个活动都有自己的keyvalue,value中又有活动名,活动报名信息,竞价名,竞价报名信息,biddings,key为竞价名字,value为竞价报名详情,结构也很清晰,存储时少了嵌套,例如:在存储竞价信息时只需通过key来确定存储位置.但是在定义key时却要多想一下,都需要以各自value的长度来增长,以存储竞价为例: 

      

Bidding.create_new_bid = function (activity_id) {
    var activities = Activity.get_activities();
    var current_activity = Activity.get_the_activity(activity_id)
    var counter = current_activity.bids.length + 1;
    var bid_name = "竞价" + counter;
    _.map(activities, function (value, key) {
        if (key == activity_id) {
            value.bids.push(bid_name);
            value.biddings[bid_name] = [];
        }
    });
    localStorage.setItem("activities", JSON.stringify(activities))
};

 

      第三种数据结构:

 

activities = [
    {
        id: "0",
        name: "first activity"

    },
];

sign_ups = [
    {
        name: "仝键",
        phone: "13600000000",
        activity_id: "0"
    },
    {
        name: "于硕",
        phone: "15600000000",
        activity_id: "0"
    },
    
    {
        name: "吴",
        phone: "13800000000",
        activity_id: "1"
    }
]

bids = [
    {
        name: "竞价1",
        activity_name: "0",
        biddings: [
            {
                phone: "13600000000",
                price: "9"

            }
        ]
    },
    {
        name: "竞价1",
        activity_id: "1",
        biddings: [
            {
                phone: "13600000000",
                price: "12"

            },
        ]
    },
    {
        name: "竞价2",
        activity_id: "1",
        biddings: [
            {
                phone: "13600000000",
                price: "10"

            },
        ]
    }
];

 

 

 

      活动名,活动报名,竞价皆分开存储,并且三者都设有activity_id,在获取当前报名或竞价信息时嵌套层数很少很方便,但是结构不算清晰,整体性不强,在存储竞价报名时需判断是否活动报名,这时又要取sign_up的数据,找到对应的id显然是很麻烦的.

      三种数据结构各有优劣,使用起来觉得哪一种方便就用那一种,但是在效率方面和减少嵌套来看,个人觉得还是使用设置id的比较方便,在做party_bid时我用的是类似于第一种方法,只是bids单独存储,同第三种数据结构的bids,使用时,也很方便.

.注意事项
1.测试的含义:测试是在给定某些已知条件的情况下,通过写可以验证所有结果的方法,来得出与expect相同的结果(因为条件已经限定,结果肯定是期待的结果才能是通过测试.但写的方法一定要是能验证所有结果的方法,如果写了一条只是为了能通过当前测试,那测试也是没有意义的)
2.
每个测试之前都会给定相应的数据或限定,即前提条件.在测试结束时,清除那些数据.也就是说测试是在不影响功能的条件下进行的,每个测试都测试一个小的模块.

 

beforeEach(function () {
        init_activity_database()
    });

    afterEach(function () {
        localStorage.clear();
    })

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值