我正处于超越功能之中

时间:2018-05-06 20:09:06

标签: javascript unit-testing typescript

我在单元测试/集成测试领域的新鲜感。我已经读过,要为方法和类编写好的单元测试,你必须把自己放在你对方法实现不太了解的环境中,并专注于方法接口和逻辑

  

例如,方法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)
    })
  })

所以,我想知道的是,如果我的测试套件对这种方法有好处,或者我测试太多或太少的情况。

0 个答案:

没有答案