测试:添加形象影响接口测试用例

This commit is contained in:
luying
2021-03-12 20:26:06 +08:00
parent 6a7a3eadca
commit fef762747f
6 changed files with 428 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
import { gameData } from "../pubUtils/data";
import { gameData, getDicFriendByLv } from "../pubUtils/data";
import { RoleType, RoleModel } from "../db/Role";
import { FriendRelationType, Relation } from "../db/FriendRelation";
import { getResStr } from "../pubUtils/util";
@@ -16,8 +16,7 @@ import { isRoleOnline } from "./redisService";
export async function increaseFrdCnt(role1: RoleType, role2: RoleType, originalFriendCnt: number) {
let { roleId, lv, friendCnt } = role1;
let dicFriend = gameData.roleFriend.get(lv);
let dicFriend = getDicFriendByLv(lv);
if(friendCnt >= dicFriend.frdCnt) return getResStr(STATUS.FRIEND_MY_CNT_MAX);
let { roleId: _roleId, lv: _lv, friendCnt: _friendCnt } = role2;

View File

@@ -265,7 +265,7 @@ describe('寻宝创建队伍', function() {
expect(res.data.teamCode).to.be.a('string');
expect(res.data.roleStatus).to.be.an('array');
res.data.roleStatus.forEach(roleSt => {
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'headHid', 'sHid', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
expect(roleSt).to.have.all.keys('roleId', 'roleName', 'isCap', 'isFrd', 'head', 'frame', 'spine', 'topLineupCe', 'lv', 'isRobot', 'heroes', 'killed', 'totalDmg', 'frdRatio');
});
const roleIds = res.data.roleStatus.map(roleSt => { return roleSt.roleId });
if (roleIds.indexOf(roleInfoT.roleId) === -1) {

View File

@@ -0,0 +1,244 @@
import { Client } from './Client';
import 'mocha';
import { PinusWSClient } from 'pinus-robot-plugin';
import { expect } from 'chai';
import { checkSuccessResponse } from './CheckPatten';
import { BLOCK_OPEATE } from '../app/consts';
describe('pvp测试', function() {
let pinusClient: PinusWSClient;
let pinusClientT: PinusWSClient; // 用做测试队友
let roleInfo;
let roleInfoT;
let applyCode;
beforeEach(function(done) {
const c = new Client();
const cT = new Client('13121622738');
const timer = setInterval(() => {
if (c.client && cT.client) {
pinusClient = c.client;
roleInfo = c.roleInfo;
pinusClientT = cT.client;
roleInfoT = cT.roleInfo;
clearInterval(timer);
done();
}
}, 500);
});
afterEach(function(done) {
pinusClient.disconnect();
pinusClientT.disconnect();
// disconnect 后等待 500ms供服务器清理环境、退出频道等
setTimeout(() => {
done();
}, 500);
});
it('获取推荐列表', function(done) {
pinusClient.request('role.friendHandler.getRecommend', {} , (res) => {
checkSuccessResponse(res);
expect(res.data.list).to.be.a('array');
res.data.list.forEach(cur => {
checkFriendRecommendParams(cur);
})
done();
});
});
it('查询好友', function(done) {
pinusClient.request('role.friendHandler.searchUser', { value: roleInfoT.roleId } , (res) => {
checkSuccessResponse(res);
expect(res.data.list).to.be.a('array');
res.data.list.forEach(cur => {
checkFriendRecommendParams(cur);
})
done();
});
});
it('申请好友', function(done) {
pinusClient.request('role.friendHandler.applyFriend', { roleIds: [roleInfoT.roleId] } , (res) => {
checkSuccessResponse(res);
expect(res.data.isSuccess).to.be.a('boolean');
expect(res.data.msg).to.be.a('string');
expect(res.data.roleIds).to.be.a('array');
res.data.roleIds.forEach(cur => {
expect(cur).to.be.a('string');
})
done();
});
});
it('获取申请列表', function(done) {
pinusClientT.request('role.friendHandler.getApplyList', {} , (res) => {
checkSuccessResponse(res);
expect(res.data.list).to.be.a('array');
res.data.list.forEach(cur => {
checkFriendApplyParams(cur);
});
let apply = res.data.list.find(cur => cur.roleId == roleInfo.roleId);
applyCode = apply.applyCode;
done();
});
});
it('同意申请', function(done) {
pinusClientT.request('role.friendHandler.handleApply', { applyCodeList: [applyCode], isPass: true } , (res) => {
checkSuccessResponse(res);
expect(res.data.isSuccess).to.be.a('boolean');
expect(res.data.msg).to.be.a('string');
expect(res.data.applyCodeList).to.be.a('array');
res.data.applyCodeList.forEach(cur => {
expect(cur).to.be.a('string');
})
expect(res.data.list).to.be.a('array');
res.data.list.forEach(cur => {
checkFriendListParam(cur);
});
expect(res.data.friendCnt).to.be.a('number');
done();
});
});
it('获取好友列表', function(done) {
pinusClient.request('role.friendHandler.getFriendList', {} , (res) => {
checkSuccessResponse(res);
expect(res.data.list).to.be.a('array');
res.data.list.forEach(cur => {
checkFriendListParam(cur);
});
expect(res.data.todayReceiveCnt).to.be.a('number');
expect(res.data.todaySendCnt).to.be.a('number');
expect(res.data.friendCnt).to.be.a('number');
expect(res.data.blockCnt).to.be.a('number');
done();
});
});
it('拉黑', function(done) {
pinusClient.request('role.friendHandler.setBlackList', { roleId: roleInfoT.roleId, type: BLOCK_OPEATE.ADD } , (res) => {
expect(res.data.frdRoleIds).to.be.a('array');
res.data.frdRoleIds.forEach(cur => {
expect(cur).to.be.a('string');
});
expect(res.data.blackRoleIds).to.be.a('array');
res.data.blackRoleIds.forEach(cur => {
expect(cur).to.be.a('string');
})
expect(res.data.list).to.be.a('array');
res.data.list.forEach(cur => {
checkBlackListParam(cur);
});
expect(res.data.isSuccess).to.be.a('boolean');
expect(res.data.msg).to.be.a('string');
expect(res.data.friendCnt).to.be.a('number');
expect(res.data.blockCnt).to.be.a('number');
done();
});
});
it('获取黑名单', function(done) {
pinusClient.request('role.friendHandler.getBlackList', {} , (res) => {
expect(res.data.list).to.be.a('array');
res.data.list.forEach(cur => {
checkBlackListParam(cur);
});
expect(res.data.friendCnt).to.be.a('number');
expect(res.data.blockCnt).to.be.a('number');
done();
});
});
it('获得玩家详细信息', function(done) {
pinusClient.request('role.friendHandler.getPlayerDetail', { roleId: roleInfoT.roleId } , (res) => {
// 从黑名单移除
pinusClient.request('role.friendHandler.setBlackList', { roleId: roleInfoT.roleId, type: BLOCK_OPEATE.REMOVE_BLACK } , (res) => {
done();
});
});
});
});
function checkFriendRecommendParams(data) {
expect(data.roleId).to.be.a('string');
expect(data.roleName).to.be.a('string');
expect(data.lv).to.be.a('number');
expect(data.head).to.be.a('number');
expect(data.spine).to.be.a('number');
expect(data.frame).to.be.a('number');
expect(data.ce).to.be.a('number');
expect(data.title).to.be.a('number');
expect(data.recFrdApplyCnt).to.be.a('number');
expect(data.type).to.be.a('number');
expect(data.serverId).to.be.a('number');
expect(data.serverName).to.be.a('string');
}
function checkFriendApplyParams(data) {
expect(data.applyCode).to.be.a('string');
expect(data.roleId).to.be.a('string');
expect(data.roleName).to.be.a('string');
expect(data.lv).to.be.a('number');
expect(data.head).to.be.a('number');
expect(data.spine).to.be.a('number');
expect(data.frame).to.be.a('number');
expect(data.ce).to.be.a('number');
expect(data.title).to.be.a('number');
expect(data.friendCnt).to.be.a('number');
expect(data.type).to.be.a('number');
expect(data.serverId).to.be.a('number');
expect(data.serverName).to.be.a('string');
}
function checkFriendListParam(data) {
expect(data.roleId).to.be.a('string');
expect(data.roleName).to.be.a('string');
expect(data.lv).to.be.a('number');
expect(data.head).to.be.a('number');
expect(data.spine).to.be.a('number');
expect(data.frame).to.be.a('number');
expect(data.ce).to.be.a('number');
expect(data.title).to.be.a('number');
expect(data.guildName).to.be.a('string');
expect(data.isOnline).to.be.a('boolean');
expect(data.quitTime).to.be.a('number');
expect(data.friendValue).to.be.a('number');
expect(data.friendLv).to.be.a('number');
expect(data.canReceive).to.be.a('boolean');
expect(data.canSend).to.be.a('boolean');
expect(data.type).to.be.a('number');
expect(data.serverId).to.be.a('number');
expect(data.serverName).to.be.a('string');
}
function checkBlackListParam(data) {
expect(data.roleId).to.be.a('string');
expect(data.roleName).to.be.a('string');
expect(data.lv).to.be.a('number');
expect(data.head).to.be.a('number');
expect(data.spine).to.be.a('number');
expect(data.frame).to.be.a('number');
expect(data.ce).to.be.a('number');
expect(data.title).to.be.a('number');
expect(data.guildName).to.be.a('string');
expect(data.isOnline).to.be.a('boolean');
expect(data.quitTime).to.be.a('number');
expect(data.type).to.be.a('number');
expect(data.serverId).to.be.a('number');
expect(data.serverName).to.be.a('string');
}

View File

@@ -70,6 +70,7 @@ describe('军团测试', function() {
expect(res.data).to.have.deep.property('leader').that.is.an('object');
expect(res.data.leader).to.have.deep.property('roleName').that.is.an('string');
expect(res.data.leader).to.have.deep.property('frame').that.is.an('number');
expect(res.data.leader).to.have.deep.property('spine').that.is.an('number');
expect(res.data.leader).to.have.deep.property('head').that.is.an('number');
expect(res.data.leader).to.have.deep.property('lv').that.is.an('number');
expect(res.data.leader).to.have.deep.property('ce').that.is.an('number');
@@ -101,6 +102,7 @@ describe('军团测试', function() {
expect(list).to.have.deep.property('roleName').that.is.a('string');
expect(list).to.have.deep.property('ce').that.is.a('number');
expect(list).to.have.deep.property('head').that.is.a('number');
expect(list).to.have.deep.property('spine').that.is.a('number');
expect(list).to.have.deep.property('frame').that.is.a('number');
expect(list).to.have.deep.property('lv').that.is.a('number');
expect(list).to.have.deep.property('title').that.is.a('number');
@@ -120,6 +122,7 @@ describe('军团测试', function() {
expect(list).to.have.deep.property('roleName').that.is.a('string');
expect(list).to.have.deep.property('ce').that.is.a('number');
expect(list).to.have.deep.property('head').that.is.a('number');
expect(list).to.have.deep.property('spine').that.is.a('number');
expect(list).to.have.deep.property('frame').that.is.a('number');
expect(list).to.have.deep.property('lv').that.is.a('number');
expect(list).to.have.deep.property('title').that.is.a('number');
@@ -143,6 +146,7 @@ describe('军团测试', function() {
expect(list).to.have.deep.property('roleName').that.is.a('string');
expect(list).to.have.deep.property('ce').that.is.a('number');
expect(list).to.have.deep.property('head').that.is.a('number');
expect(list).to.have.deep.property('spine').that.is.a('number');
expect(list).to.have.deep.property('frame').that.is.a('number');
expect(list).to.have.deep.property('lv').that.is.a('number');
expect(list).to.have.deep.property('title').that.is.a('number');

View File

@@ -0,0 +1,161 @@
import { Client } from './Client';
import 'mocha';
import { PinusWSClient } from 'pinus-robot-plugin';
import { expect } from 'chai';
import { checkSuccessResponse } from './CheckPatten';
describe('pvp测试', function() {
let pinusClient: PinusWSClient;
let detailRoleId;
beforeEach(function(done) {
const c = new Client();
const timer = setInterval(() => {
if (c.client) {
pinusClient = c.client;
clearInterval(timer);
done();
}
}, 500);
});
afterEach(function(done) {
pinusClient.disconnect();
// disconnect 后等待 500ms供服务器清理环境、退出频道等
setTimeout(() => {
done();
}, 500);
});
it('获得主界面信息', function(done) {
getData(pinusClient, false, function(data) {
detailRoleId = data.oppPlayers[0].roleId;
done();
}); // 先不结算赛季
});
it('获取对手详细信息', function(done) {
pinusClient.request('battle.pvpHandler.getPlayerDetail', { roleId: detailRoleId }, (res) => {
checkSuccessResponse(res);
expect(res.data.roleId).to.be.a('string');
expect(res.data.roleName).to.be.a('string');
expect(res.data.lv).to.be.a('number');
expect(res.data.title).to.be.a('number');
expect(res.data.head).to.be.a('number');
expect(res.data.frame).to.be.a('number');
expect(res.data.spine).to.be.a('number');
expect(res.data.defCe).to.be.a('number');
expect(res.data.score).to.be.a('number');
expect(res.data.rank).to.be.a('number');
expect(res.data.pLv).to.be.a('number');
expect(res.data.heroes).to.be.a('array');
res.data.heroes.forEach(hero => {
expect(hero.actorId).to.be.a('number');
expect(hero.lv).to.be.a('number');
expect(hero.star).to.be.a('number');
expect(hero.colorStar).to.be.a('number');
expect(hero.quality).to.be.a('number');
expect(hero.score).to.be.a('number');
});
done();
});
});
it('刷新对手', function(done) {
pinusClient.request('battle.pvpHandler.refreshOppPlayer', { }, (res) => {
checkSuccessResponse(res);
checkOppPlayers(res.data.oppPlayers);
expect(res.data.refOppCnt).to.be.a('number');
done();
});
});
it('获得排行榜', function(done) {
pinusClient.request('battle.pvpHandler.getRank', { }, (res) => {
checkSuccessResponse(res);
expect(res.data.ranks).to.be.a('array');
res.data.ranks.forEach(rank => {
checkRank(rank);
});
checkRank(res.data.myRank);
done();
});
});
});
function checkRank(rank) {
expect(rank.rank).to.be.a('number');
expect(rank.roleId).to.be.a('string');
expect(rank.roleName).to.be.a('string');
expect(rank.head).to.be.a('number');
expect(rank.frame).to.be.a('number');
expect(rank.spine).to.be.a('number');
expect(rank.num).to.be.a('number');
expect(rank.title).to.be.a('number');
expect(rank.lv).to.be.a('number');
}
function getData(pinusClient, seasonEnd: boolean, cb) {
pinusClient.request('battle.pvpHandler.getData', {}, (res) => {
checkSuccessResponse(res);
expect(res.data.warId).to.be.a('number');
expect(res.data.seasonNum).to.be.a('number');
expect(res.data.seasonEndTime).to.be.a('number');
expect(res.data.myRank).to.be.a('number');
checkOppPlayers(res.data.oppPlayers);
expect(res.data.heroes).to.be.a('array');
res.data.heroes.forEach(hero => {
expect(hero.actorId).to.be.a('number');
expect(hero.dataId).to.be.a('number');
expect(hero.order).to.be.a('number');
});
expect(res.data.score).to.be.a('number');
expect(res.data.pLv).to.be.a('number');
expect(res.data.winStreakNum).to.be.a('number');
expect(res.data.challengeCnt).to.be.a('number');
expect(res.data.challengeRefTime).to.be.a('number');
expect(res.data.receivedBox).to.be.a('array');
res.data.receivedBox.forEach(box => {
expect(box).to.be.a('number');
});
expect(res.data.hisScore).to.be.a('number');
expect(res.data.heroScores).to.be.a('array');
res.data.heroScores.forEach(heroScore => {
expect(heroScore.hid).to.be.a('number');
expect(heroScore.score).to.be.a('number');
});
expect(res.data.isFirstEntry).to.be.a('boolean');
expect(res.data.isDefaultHero).to.be.a('boolean');
expect(res.data.refOppCnt).to.be.a('number');
if(seasonEnd) {
checkSeasonResult(res.data.seasonResult);
}
cb(res.data);
});
}
function checkOppPlayers(oppPlayers) {
expect(oppPlayers).to.be.a('array');
oppPlayers.forEach(player => {
expect(player.pos).to.be.a('number');
expect(player.defCe).to.be.a('number');
expect(player.frame).to.be.a('number');
expect(player.head).to.be.a('number');
expect(player.lv).to.be.a('number');
expect(player.oppRoleId).to.be.a('string');
expect(player.pLv).to.be.a('number');
expect(player.rankLv).to.be.a('number');
expect(player.roleName).to.be.a('string');
expect(player.spine).to.be.a('number');
expect(player.title).to.be.a('number');
expect(player.roleId).to.be.a('string');
expect(player.addScore).to.be.a('number');
expect(player.plusScore).to.be.a('number');
});
}
function checkSeasonResult(resultRecord) {
expect(resultRecord).to.be.a('object');
}

View File

@@ -55,7 +55,7 @@ import { RewardInter } from "./interface";
import { dicArmyDevelopConsume } from '../pubUtils/dictionary/DicArmyDevelopConsume';
import { dicArmyBossRank } from '../pubUtils/dictionary/DicArmyBossRank';
import { dicArmyDonate } from '../pubUtils/dictionary/DicArmyDonateBoxReward';
import { dicRoleFriend } from "./dictionary/DicRoleFriend";
import { dicRoleFriend, DicRoleFriend } from "./dictionary/DicRoleFriend";
import { dicRoleFriendLv } from "./dictionary/DicRoleFriendLv";
import { Attribute } from "../domain/roleField/attribute";
@@ -419,4 +419,19 @@ export function getFriendLvByExp(exp: number) {
if(exp < sum) break;
}
return resultLv;
}
/**
* 根据主公当前经验获得当前等级
* @param exp 累积经验
*/
export function getDicFriendByLv(lv: number) {
let dicFriend: DicRoleFriend;
let entries = gameData.roleFriend.entries();
for (let [dicLv, dic ] of entries) {
dicFriend = dic;
if(lv > dicLv) break;
}
return dicFriend;
}