我在单元测试/集成测试领域的新鲜感。我已经读过,要为方法和类编写好的单元测试,你必须把自己放在你对方法实现不太了解的环境中,并专注于方法接口和逻辑
例如,方法
add
取2个参数并返回其总和
所以这是一个我必须为其编写测试的方法的真实例子:
matchLeague(summoner: SummonerTeammate): boolean {
// check that maximum difference between summoners tiers is one tier
if(Math.abs(this.summoner_league_info.tier - summoner.summoner_league_info.tier) > 1) {
return false
}
return true;
}
以下是我写的测试:
describe('match league algorithme', () => {
function matchingHelper(tier1, tier2, excp) {
let sum1: SummonerTeammate = new SummonerTeammate({
summoner_league_info: {
tier: tier1,
}
})
let sum2: SummonerTeammate = new SummonerTeammate({
summoner_league_info: {
tier: tier2,
}
});
expect(sum1.matchLeague(sum2)).toBe(excp)
}
test('should return true if players are in same tier', () => {
matchingHelper(1, 1, true)
})
test('should return true if player1 is 1 tier below player 2 tier', () => {
matchingHelper(1, 2, true)
})
test('should return true if player1 is 1 tier above player 2 tier', () => {
matchingHelper(2, 1, true)
})
test('should return false if player 1 is more than 1 tier above player 2', () => {
matchingHelper(3, 1, false)
matchingHelper(7, 1, false)
matchingHelper(6, 1, false)
})
test('should return false if player 1 is more than 1 tier below player 2', () => {
matchingHelper(4, 6, false)
matchingHelper(2, 6, false)
matchingHelper(1, 6, false)
})
})
所以,我想知道的是,如果我的测试套件对这种方法有好处,或者我测试太多或太少的情况。