I'm currently trying to build unit tests for on the method below:
I'm testing it using this method:
and the object being built are using the below constructors:
But whenever the test is ran, it fails and gives this in my logcat:
Just from looking at the logcat I know I may have missed something and was hoping someone with a better pair of eyes might spot what I've done (or not done).
Thanks in advance.
Code:
public Card attackCard(Card attackingCard, Card targetCard) {
mAttackingCardHit = attackingCard.getAttack();
mTarget = targetCard.getHealth();
mAttackingCardHealth = attackingCard.getHealth();
mTargetCardAttack = targetCard.getAttack();
targetCard.setHealth(mTarget - mAttackingCardHit);
attackingCard.setHealth(mAttackingCardHealth - mTargetCardAttack);
return targetCard;
}
I'm testing it using this method:
Code:
public void attackCardTestTargetCardHealthSuccessful() {
CardInfo cardInfoAttackingCard = new CardInfo(2, 5);
CardInfo cardInfoTargetCard = new CardInfo(2, 5);
Card cardAttackingCard = new Card(cardInfoAttackingCard);
Card cardTargetCard = new Card(cardInfoTargetCard);
Attack attack = new Attack();
attack.attackCard(cardAttackingCard, cardTargetCard);
assertEquals(3, cardTargetCard.getHealth());
}
and the object being built are using the below constructors:
Code:
public CardInfo(int attack, int health){
// Fill in member variables based on the arguments passed in
mAttack = attack;
mHealth = health;
}
public Card(CardInfo cardInfo) {
mAttack = cardInfo.getAttack();
mHealth = cardInfo.getHealth();
}
public Attack() {
}
But whenever the test is ran, it fails and gives this in my logcat:
Code:
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:42)
at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:36)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.buildAndroidRunner(AndroidAnnotatedBuilder.java:72)
at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:51)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at android.support.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at android.support.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:77)
at android.support.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:110)
at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:809)
at android.support.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:487)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:373)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2075)
Just from looking at the logcat I know I may have missed something and was hoping someone with a better pair of eyes might spot what I've done (or not done).
Thanks in advance.