파생 개체를 사용하지 않는 단위 테스트

코이 히메 나카무라

여러 주사위 테이블을 구현하는 함수를 테스트하려고합니다. 나는 공식을 도출했고, 현재 정상 작동을 테스트하기위한 일련의 테스트 케이스를 작성하고 있으며, 그 다음 두 가지 논리 케이스를 작성하여 범위를 벗어난 결과를 방지합니다.

테스트중인 기능은 다음과 같습니다.

    public static int getNumberOfStars(Dice ourDice, int mod = 0)
    {
        int roll = ourDice.gurpsRoll() + mod;
        int numStars = (int)(Math.Floor((roll - 1.0) / 5.0));

        //fix a few possible logic bugs.
        if (numStars < 1) numStars = 1;
        else if (numStars > 3) numStars = 3;
        return numStars;           
    }

Dice는 PRNG와의 인터페이스 역할을하는 개체입니다. 해당 기능이 3d6을 굴립니다. 모의 객체는 다음과 같습니다.

    public class FakeDice : Dice
    {
          public int diceRoll;

          public new int gurpsRoll()
         {
             return diceRoll;
         }

      ...
  }

마지막으로 테스트 케이스는

    [TestMethod]
    public void VerifyMaxNumberOfStars()
    {
        FakeDice ourDice = new FakeDice();
        ourDice.diceRoll = 18;
        int numDice = StarReference.getNumberOfStars(ourDice, 3);
        Assert.AreEqual(3, numDice);
    }

결과는 실행 사이에 변경되어 새로운 기능을 사용하지 않고 대신 기본 기능을 사용하고 있다고 생각합니다. (이 테스트는 실행 된 적이 없지만 코드를 수동으로 실행하면 유효한 결과가 반환됩니다.)

내가 무엇을 잘못하고 있지?

dcastro

new메서드가 기본 메서드를 재정의하지 않기 때문 입니다.

new 메서드는 선언 된 클래스를 다룰 때만 호출됩니다. 다형성을 사용하는 경우 기본 메서드가 대신 호출됩니다.

예를 들면 다음과 같습니다.

FakeDice fake = new FakeDice();
fake.gurpsRoll();  // calls FakeDice's implementation

Dice dice = fake;
dice.gurpsRoll();  // calls Dice's implementation

기본 메서드를 가상으로 만든 다음 재정의해야합니다.

보다:

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

VS2012 단위 테스트를 사용하면 생성자없이 개체를 만들고 개인 필드를 설정하는 방법이 있습니다.

분류에서Dev

tracesource 개체를 둘러싼 래퍼 인 사용자 지정 로거를 단위 테스트하는 방법

분류에서Dev

객체 내에서 함수 생성기를 호출하지 않는 Mocha 단위 테스트

분류에서Dev

JavaScript는 테스트를 위해 다른 파일에서 사용자 지정 개체를 만듭니다.

분류에서Dev

ContentResult 목록 개체를 반환하는 단위 테스트 컨트롤러

분류에서Dev

XCTestCase 단위 테스트 파일을 실행하지 않는 xcodebuild 테스트

분류에서Dev

어떻게 단위 테스트 코드를 할 수는 org.threeten.bp.zone.ZoneRulesException을 발생시키지 않고 ZoneId.systemDefault의 사용하는

분류에서Dev

Unity 컨테이너 단위 테스트를 사용하는 Moq

분류에서Dev

개인 생성자를 사용하여 클래스 단위 테스트

분류에서Dev

파이썬 단위 테스트를 조롱하는 문제

분류에서Dev

캐슬 윈저는 단위 테스트에서 해결하는 동안 fakeiteasy 개체를 사용합니다.

분류에서Dev

자바 : 개체를 반환하는 메서드 단위 테스트

분류에서Dev

생성자에 CheckedProviders를 사용하여 클래스에 대한 단위 테스트를 작성하는 방법

분류에서Dev

$ resource를 사용하는 서비스 단위 테스트

분류에서Dev

this.fire를 사용하는 단위 테스트 Polymer 리스너

분류에서Dev

Entity Framework DAL을 단위 테스트 할 때 Mock 개체를 사용하는 이유가 있습니까?

분류에서Dev

Entity Framework를 사용하여 개체를 만드는 리포지토리 계층 메서드를 단위 테스트하는 방법은 무엇입니까?

분류에서Dev

eclemma를 사용하는 단일 테스트 파일의 코드 커버리지?

분류에서Dev

Android 단위 테스트는 올바른 애플리케이션 클래스를 사용하지 않습니다.

분류에서Dev

리포지토리 패턴 및 LiveData를 사용하는 단위 테스트 ViewModel

분류에서Dev

테스트중인 시스템에서 사용되는 동일한 상수를 단위 테스트에서 사용하는 것이 좋은 생각입니까?

분류에서Dev

H2 Database In-Memory를 사용하면 단위 테스트에서 개체가 유지되지 않습니다.

분류에서Dev

H2 Database In-Memory를 사용하면 단위 테스트에서 개체가 유지되지 않습니다.

분류에서Dev

데이터베이스에 데이터를 생성하지 않고 데이터베이스와 상호 작용하는 단위 테스트 코드

분류에서Dev

maxConcurrentOperationCount를 사용하는 NSOperationQueue에 대한 단위 테스트

분류에서Dev

grails 단위 테스트에서 VndErrorJsonRenderer를 사용하는 방법

분류에서Dev

Android 단위 테스트를 사용하는 Hamcrest의 NoSuchMethodError

분류에서Dev

Visual C ++ 단위 테스트를 사용하는 Doxygen

분류에서Dev

Picasso를 사용하는 단위 테스트 활동 / Adaper

Related 관련 기사

  1. 1

    VS2012 단위 테스트를 사용하면 생성자없이 개체를 만들고 개인 필드를 설정하는 방법이 있습니다.

  2. 2

    tracesource 개체를 둘러싼 래퍼 인 사용자 지정 로거를 단위 테스트하는 방법

  3. 3

    객체 내에서 함수 생성기를 호출하지 않는 Mocha 단위 테스트

  4. 4

    JavaScript는 테스트를 위해 다른 파일에서 사용자 지정 개체를 만듭니다.

  5. 5

    ContentResult 목록 개체를 반환하는 단위 테스트 컨트롤러

  6. 6

    XCTestCase 단위 테스트 파일을 실행하지 않는 xcodebuild 테스트

  7. 7

    어떻게 단위 테스트 코드를 할 수는 org.threeten.bp.zone.ZoneRulesException을 발생시키지 않고 ZoneId.systemDefault의 사용하는

  8. 8

    Unity 컨테이너 단위 테스트를 사용하는 Moq

  9. 9

    개인 생성자를 사용하여 클래스 단위 테스트

  10. 10

    파이썬 단위 테스트를 조롱하는 문제

  11. 11

    캐슬 윈저는 단위 테스트에서 해결하는 동안 fakeiteasy 개체를 사용합니다.

  12. 12

    자바 : 개체를 반환하는 메서드 단위 테스트

  13. 13

    생성자에 CheckedProviders를 사용하여 클래스에 대한 단위 테스트를 작성하는 방법

  14. 14

    $ resource를 사용하는 서비스 단위 테스트

  15. 15

    this.fire를 사용하는 단위 테스트 Polymer 리스너

  16. 16

    Entity Framework DAL을 단위 테스트 할 때 Mock 개체를 사용하는 이유가 있습니까?

  17. 17

    Entity Framework를 사용하여 개체를 만드는 리포지토리 계층 메서드를 단위 테스트하는 방법은 무엇입니까?

  18. 18

    eclemma를 사용하는 단일 테스트 파일의 코드 커버리지?

  19. 19

    Android 단위 테스트는 올바른 애플리케이션 클래스를 사용하지 않습니다.

  20. 20

    리포지토리 패턴 및 LiveData를 사용하는 단위 테스트 ViewModel

  21. 21

    테스트중인 시스템에서 사용되는 동일한 상수를 단위 테스트에서 사용하는 것이 좋은 생각입니까?

  22. 22

    H2 Database In-Memory를 사용하면 단위 테스트에서 개체가 유지되지 않습니다.

  23. 23

    H2 Database In-Memory를 사용하면 단위 테스트에서 개체가 유지되지 않습니다.

  24. 24

    데이터베이스에 데이터를 생성하지 않고 데이터베이스와 상호 작용하는 단위 테스트 코드

  25. 25

    maxConcurrentOperationCount를 사용하는 NSOperationQueue에 대한 단위 테스트

  26. 26

    grails 단위 테스트에서 VndErrorJsonRenderer를 사용하는 방법

  27. 27

    Android 단위 테스트를 사용하는 Hamcrest의 NoSuchMethodError

  28. 28

    Visual C ++ 단위 테스트를 사용하는 Doxygen

  29. 29

    Picasso를 사용하는 단위 테스트 활동 / Adaper

뜨겁다태그

보관