当前位置: 首页 > 知识库问答 >
问题:

我们可以验证一个方法在单元测试中没有发生异常吗

贝浩歌
2023-03-14

java-我们是否可以验证testdisplay2()方法中没有发生异常,就像我们在testdisplay1()中发生异常时所使用的预期一样

class A{
  public void display(){
    ...
    ...
    ...
    if(a){
     throw new AIsTrueException("a true");
    }

    if(b){
     throw new BIsTrueException("b true");
    }

  }
}

class BTest{
...
@InjectMock
A subject;
...
@Test(expected=AIsTrueException.class)
public void testdisplay1(){
    subject.display(true,false);
}

@Test
public void testdisplay2(){
    subject.display(false,false);
    // Here how can I verify that no exception has occured in display(),
    // (When exception occured we use expected = ...)
    // Do we have similar when no exception occured
} 
...
...
}

共有1个答案

施权
2023-03-14

你所拥有的是正确的。尝试更改display()以始终抛出AistRueException,您将看到TestDisplay2()给出错误。

 类似资料:
  • 我有以下服务方式: 我正试图为此方法创建以下单元测试: 我的问题是: 1.我们需要在单元测试中测试方法吗?如果是这样,我们是否应该为列表创建多条记录,然后将返回的结果与预期的筛选值进行比较? 泛型可译:

  • 最近,在一次代码审查中,一位同事说“测试不应该有try-catch块”。他还向我指出了关于的信息,我可以使用它重写对异常数据执行检查的一些测试。 然而,我遇到了一种情况,我不确定我是否能消除试捕。我正在为一个方法编写单元测试,该方法将抛出一个异常,并执行一些我需要使用JMockit验证的行为。假设测试中的代码包含如下内容 JUnit测试当前看起来像 我找不到摆脱试捕的好方法。就我个人而言,我不认为

  • 我正在为我的程序创建一个单元测试。我有一个void方法,它接受五个参数,然后将这些参数转换成一个闭包,并将其传递给另一个服务,然后将其转换成电子邮件并发送。我唯一关心的是这封邮件的正文,它存储在传递给这个函数的一个参数中。有没有可能在不改变我的程序设计的情况下验证这个论点? 编辑:作为对下面答案的回应,我在测试中插入了一个spock样式的模拟,但我认为我的语义不对,因为value存储的是NULL。

  • 问题内容: 我有以下课程: 我的意图是验证当我调用doIt()时,将按该顺序调用metodOne(),methodTwo()和methodThree()方法。 我正在使用模拟嘲笑。有谁知道我如何测试这种情况? 问题答案: 不想成为这个人,但是:别测试这个。测试输出,副作用,结果-而不是执行。 如果您确实想确保顺序正确,请将这些方法提取到单独的类中并进行模拟。

  • 我知道一个测试可以通过运行来运行,在sbt中, 有没有办法告诉sbt/scalatest在没有标签的情况下运行单个测试?例如: 这意味着“在类中运行第二个测试。不管它是什么”。我们有一堆测试,没有人费心去标记它们,那么有没有办法在没有标签的情况下运行单个测试?

  • 问题 你想写个测试用例来准确的判断某个异常是否被抛出。 解决方案 对于异常的测试可使用 assertRaises() 方法。 例如,如果你想测试某个函数抛出了 ValueError 异常,像下面这样写: import unittest # A simple function to illustrate def parse_int(s): return int(s) class Test