Exception Junit异常测试

Exception Junit异常测试,exception,junit,Exception,Junit,我在下面的代码中犯了什么错误,尤其是在“testSetEmailString()”中 package de.hhn.pp.addressBook.test; 导入静态org.junit.Assert.assertEquals; 导入java.util.array; 导入java.util.Collection; 导入org.junit.Test; 导入org.junit.runner.RunWith; 导入org.junit.runners.Parameterized; 导入org.junit.

我在下面的代码中犯了什么错误,尤其是在“testSetEmailString()”中

package de.hhn.pp.addressBook.test;
导入静态org.junit.Assert.assertEquals;
导入java.util.array;
导入java.util.Collection;
导入org.junit.Test;
导入org.junit.runner.RunWith;
导入org.junit.runners.Parameterized;
导入org.junit.runners.Parameterized.Parameters;
导入de.hhn.pp.addressBook.logic.ContactImplementation;
导入de.hhn.pp.addressbook.api.exceptions.StringNotValidException;
@RunWith(参数化的.class)
公共级自闭症{
私人字符串电子邮件;
私有布尔期望值;
私人联络实施联络;
公共Asd(最终字符串电子邮件,最终布尔值expectedValue){
this.email=电子邮件;
this.expectedValue=expectedValue;
}
/**
*数据。
*
*@归还藏品
*/
@参数
公共静态收集数据(){
对象[][]数据=新对象[][]{
//无效的电子邮件地址
//顶级域中不允许有数字
{ "personalproductivity@hotmail.com2“,false},
//不允许两次使用“@”
{ "personal@productivity@hotmail.de“,false},
//不允许有特殊字符,如“!”
{“personal!productivity!@hotmail.de”,false},
//顶级域不能以“.”开头
{ "personalproductivity@.gmail.com“,false},
//电子邮件地址必须包含“@”
{“personalproductivity.de”,false},
//电子邮件地址必须包含顶级域
{“personalproductivity@”,false},
//不允许有双“.”
{“个人..”。。productivity@web.de“,false},
//不允许以“.”开头
{ ".personalproductivity@gmx.edu“,false},
//有效电子邮件地址
{ "personalproductivity@hotmail.de“,对},
{“个人+productivity@hotmail.com“,对},
{ "personalproductivity2015@web.edu“,对},
{“个人生产力”-SS15@gmail.com“,真}};
返回数组.asList(数据);
}
@测试(预期=StringNotValidException.class)
public void testSetEmailString(){
联系人:setEmail(email);
}
@试验
public void testIsEmailPatternValid(){
布尔结果=ContactImplementation.isEmailPatternValid(电子邮件);
assertEquals(“结果”,此为预期值,结果);
}
}

在我实现的类中,第一个方法“setEmail(String)”通过检查静态方法“isEmailPatternValid”是否返回true来设置新的电子邮件地址。如果电子邮件无效,将引发新异常StringNotValidException


有效的测试非常有效。但是我还想检查setEmail方法,以获得更好的代码覆盖率。我在异常测试中遇到问题。

“我有问题”,“我的错误是什么”-实际问题是什么?问题是什么,错误/控制台/调试器输出是什么?不要描述您的代码。张贴它。不要告诉你有例外。发布准确完整的异常堆栈跟踪。
package de.hhn.pp.addressBook.test;

import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import de.hhn.pp.addressBook.logic.ContactImplementation;
import de.hhn.pp.addressbook.api.exceptions.StringNotValidException;

@RunWith(Parameterized.class)
public class Asd {

private String email;

private boolean expectedValue;

private ContactImplementation contact;

public Asd(final String email, final boolean expectedValue) {
    this.email = email;
    this.expectedValue = expectedValue;
}

/**
 * Data.
 *
 * @return the collection
 */
@Parameters
public static Collection<Object[]> data() {
    Object[][] data = new Object[][] {

            // INVALID EMAIL ADDRESSES
            // it is not allowed to have digits in the Top Level Domain
            { "personalproductivity@hotmail.com2", false },
            // it is not allowed to have the '@' twice
            { "personal@productivity@hotmail.de", false },
            // it is not allowed to have special character such as '!'
            { "personal!productivity!@hotmail.de", false },
            // Top Level Domain cannot start with a '.'
            { "personalproductivity@.gmail.com", false },
            // email address must contain a '@'
            { "personalproductivity.de", false },
            // email address must contain a Top Level Domain
            { "personalproductivity@", false },
            // it is not allowed to have double '.'
            { "personal..productivity@web.de", false },
            // it is not allowed to start with a '.'
            { ".personalproductivity@gmx.edu", false },

            // VALID EMAIL ADDRESSES
            { "personalproductivity@hotmail.de", true },
            { "personal+productivity@hotmail.com", true },
            { "personalproductivity2015@web.edu", true },
            { "personal.productivity-SS15@gmail.com", true } };
    return Arrays.asList(data);
}

@Test(expected = StringNotValidException.class)
public void testSetEmailString() {
    contact.setEmail(email);
}

@Test
public void testIsEmailPatternValid() {
    boolean result = ContactImplementation.isEmailPatternValid(email);
    assertEquals("Result", this.expectedValue, result);
}