Page History
...
https://github.com/junit-team/junit4/wiki/Parameterized-tests
I dette afsnit følger en kort introduktion til den skabelon man skal følge for at lave en standard parametriseret JUnit4 test - efterfulgt af et eksempel.
Så følger en kort beskrivelse af de problemstillinger vi har haft ifm. oprettelsen af tests. Vi gennemgår de hjælpeklasser og beslutninger, som er lavet for at give et bedre overblik og en nemmere tilgang til at lave parametriseret tests - og til sidst et eksempel på brugen af hjælpeklasserne.
Introduktion
En parametriseret JUnit4 test klasse skal afvikles med org.junit.runners.Parameterized. Derfor angives annotation @RunWith(Parameterized.class) på klassen.
...
Datasæt til tests angives vha. org.junit.runners.Parameterized.Parameter. Her angiver man et index som input til annoteringen, så det peger på et specifikt Object i aktuelle Object[].
| Code Block | ||||
|---|---|---|---|---|
| ||||
public class SimpleVaultTest {
@Test
public void testCertificate() {
X509Certificate certificateToTest = CredentialVaultTestUtil.getCredentialVault().getSystemCredentialPair().getCertificate();
DistinguishedName dn = new DistinguishedName(certificateToTest.getSubjectX500Principal());
assertEquals("Forventede noget helt andet her?", "TU GENEREL MOCES M CPR gyldig", dn.getCommonName());
}
} |
| Code Block | ||||
|---|---|---|---|---|
| ||||
public class SimpleVaultTest {
private X509Certificate certificateToTest;
@Before
public void setup() {
certificateToTest = CredentialVaultTestUtil.getCredentialVault().getSystemCredentialPair().getCertificate();
}
@After
public void tearDown() {
certificateToTest = null;
}
@Test
public void testCertificateCommonName() {
DistinguishedName dn = new DistinguishedName(certificateToTest.getSubjectX500Principal());
assertEquals("Forventede noget helt andet her?", "TU GENEREL MOCES M CPR gyldig", dn.getCommonName());
}
@Test
public void testCertificateSubjectSerialNumber() {
DistinguishedName dn = new DistinguishedName(certificateToTest.getSubjectX500Principal());
assertEquals("Forventede noget helt andet her?", "CVR:30808460-RID:42634739", dn.getSubjectSerialNumber());
}
} |
| Code Block | ||||
|---|---|---|---|---|
| ||||
@RunWith(Parameterized.class)
public class SimpleVaultTest {
@Parameter(0)
public X509Certificate certificateToTest; //Skal være public!
@Parameters
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][] {
{ CredentialVaultTestUtil.getCredentialVault().getSystemCredentialPair().getCertificate() },
{ CredentialVaultTestUtil.getMoces3CredentialVault().getSystemCredentialPair().getCertificate() }
});
}
@Test
public void testCertificateCommonName() {
DistinguishedName dn = new DistinguishedName(certificateToTest.getSubjectX500Principal());
assertEquals("Forventede noget helt andet her?", "TU GENEREL MOCES M CPR gyldig", dn.getCommonName());
}
@Test
public void testCertificateSubjectSerialNumber() {
DistinguishedName dn = new DistinguishedName(certificateToTest.getSubjectX500Principal());
assertEquals("Forventede noget helt andet her?", "CVR:30808460-RID:42634739", dn.getSubjectSerialNumber());
}
} |