繁体   English   中英

预期的异常JUNIT

[英]Expected Exception JUNIT

我想在数据库中添加一个对象,而不是检查该对象是否已经存在,因此我们不能将其添加两次。 我使用JUNIT进行了测试:

@org.junit.Test (expected = ExistingProduct.class)
public void AddExisting() 
{

    Register aRegister = new Register();
    Product aProduct = new Product();
    aProduct.setPIN("079400027252"); 

    aRegister.AddProduct(aProduct);


    Product sameProduct = new Product();
    sameProduct.setPIN("079400027252");

    aRegister.AddProduct(sameProduct); //this throw the exception


    aRegister.deleteProduct("079400027252"); //CAN'T REACH HERE
}

问题是我无法删除产品,因为之前调用的指令将引发异常,从而结束测试。

好吧,我有点弄清楚了...我调用@Before方法witch从BD删除所有文件并放回默认值

也许像这样解决这个问题。 更多内容请看Sergey Berezovskiy的https://stackoverflow.com/a/20494165/4296891

public void AddExisting() 
    {

        Register aRegister = new Register();
        Product aProduct = new Product();
        aProduct.setPIN("079400027252"); 

        aRegister.AddProduct(aProduct);


        Product sameProduct = new Product();
        sameProduct.setPIN("079400027252");
        try
        {
            aRegister.AddProduct(sameProduct); //this throw the exception
            assertEquals("Can't add it twice exception has been excepted." ,true, false);
        }
        catch(ExistingProduct exception)
        {        
            // exception
        }

        aRegister.deleteProduct("079400027252"); //CAN'T REACH HERE
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM