单元测试如何确认已引发异常

2023-12-24

我正在为 C# 类编写一个单元测试,我的其中一个测试应该会导致该方法在添加数据时引发异常。我如何使用单元测试来确认异常已被抛出?


这取决于您使用的单元测试框架。在all在这种情况下你可以这样做:

[Test]
public void MakeItGoBang()
{
     Foo foo = new Foo();
     try
     {
         foo.Bang();
         Assert.Fail("Expected exception");
     }
     catch (BangException)
     { 
         // Expected
     }
}

在某些框架中,您可以向测试方法添加一个属性来表达预期的异常,或者可能有一个方法,例如:

[Test]
public void MakeItGoBang()
{
     Foo foo = new Foo();
     Assert.Throws<BangException>(() => foo.Bang());
}

像这样限制范围会更好,就好像您将其应用于整个测试一样,即使wrong行抛出异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单元测试如何确认已引发异常 的相关文章

随机推荐

  • Android 中的 ViewPager 滚动问题

    我有一个ViewPager动态数量images在里面 这ViewPager作为自定义行添加到表视图中 由于此表视图可以有多个动态自定义行 因此我必须在scrollview用于滚动 现在我的问题是 当我水平滚动到 查看寻呼机 时 它并不完全是
  • 根据商品数量有条件地按购物车商品添加折扣

    我已经建立了一个 Woocommerce 商店 并希望为所有产品设置基于 12 倍数 一盒 的特定折扣 我尝试了很多折扣插件 但没有找到我想要的 例如 如果我订购 12 件产品 X 我将获得 10 的折扣 如果我订购 15 件产品 X 前
  • 无法在 Mac OS 中使用 Python select.poll?

    python Python 2 7 5 default Aug 25 2013 00 04 04 GCC 4 2 1 Compatible Apple LLVM 5 0 clang 500 0 68 on darwin Type help
  • JavaScript 中的递归函数调用

    我知道在 JavaScript 中对函数进行递归调用时应该小心谨慎 因为第二次调用可能会慢 10 倍 雄辩的 JavaScript http eloquentjavascript net chapter3 html states 有一个重要
  • React 组件中的 render() 函数的作用是什么? [复制]

    这个问题在这里已经有答案了 我是 ReactJS 的新手 对组件类中渲染函数的使用以及 ReactDOM 全局对象的使用感到困惑 对此的回答question https stackoverflow com questions 3346567
  • fgetcsv 无法读取 mac 格式的 csv 文件中的行结尾,有更好的解决方案吗?

    我正在使用 php 和 fgetcsv 函数解析 csv 文件 它解析了一行中的所有内容 后来我发现 csv包含回车符 r 我看到 之前被报告为 php bug 我通过设置 php 运行时配置解决了这个问题 ini set auto det
  • Rcpp/RcppArmadillo:根据位置从向量中删除非连续元素

    假设我有一个向量 2 4 6 8 10 我需要删除第二个and该向量的第四个元素 所需的结果向量应为 2 6 10 这在 R 中很容易实现 v1 lt c 2 4 6 8 10 v1 c 2 4 但是我如何在 Rcpp RcppArmadi
  • LLBLGen:如何软删除条目

    我继承了一个使用 LLBLGen Pro 作为 DB 层的项目 DB 模型要求在删除条目时有一个标志 DeletedDate 设置为当前时间 最后一位程序员忽略了这一要求 并在整个应用程序中使用了常规删除 有没有办法将代码生成器设置为自动执
  • JavaScript - 保持尾随零[重复]

    这个问题在这里已经有答案了 我想解析一个字符串 我使用了parseFloat 但它会删除所有尾随零 如何防止这种情况 我需要准确地解析字符串 如果我有 2 5000 我需要与浮点数完全相同的结果 2 5000 你可以做 parseFloat
  • 以编程方式将扫描图像分割为单独的图像

    为了提高 OCR 质量 我需要对扫描图像进行预处理 有时我需要对带有少量图片的图像进行OCR 页面上的组件并且它们处于不同的角度 例如 一次扫描一些纸质文档 例如 是否有可能以编程方式自动将此类图像划分为包含每个逻辑文档的单独图像 例如使用
  • 将 datashader 图像添加到 matplotlib 子图

    是否可以将 datashader 图像添加到一组 matplotlib 子图中 作为一个具体的例子 import numpy as np import pandas as pd import matplotlib pylab as plt
  • Newtonsoft.Json 导致序列化发生两次,导致 Reference.cs 中出现重复定义

    我有一个具有服务参考的 Common 项目 添加引用后Newtonsoft json 版本6 0 2 http www newtonsoft com json到具有服务引用和可序列化类 ChatLine 的同一项目 公共 Serializa
  • 如何从二维数组中获取数据并放入一维数组中

    我有一个 2D 数组 我想通过 MATLAB 创建 1D 数组 以满足 1D 输出的每个元素都是由 2D 数组中给定索引的值创建的要求 二维数组示例是 A 2 4 6 1 9 7 3 4 5 和一维数组的索引 X 1 2 3 Y 1 2 3
  • 在 PintOS 中运行 make 时获取对“floor”的未定义引用

    我正在尝试在 PintOS makefile 上运行 make 但我不断收到对 floor 错误的未定义引用 生成文件如下 我正在运行带有 gcc 4 6 1 的 Ubuntu 11 10 任何帮助表示赞赏 all setitimer he
  • 使用 jest 运行测试时的可选链接问题

    我正在尝试使用 Jest 运行测试 目前我在 React 应用程序中使用 jsx 和 tsx 从 js 更改为 ts 但是当我运行测试时 除了 tsx 中具有可选阻塞的测试之外 所有 jsx 测试都成功 我总是收到错误Unexpected
  • 使用 sscanf 解析输入的 C++ 替代方案

    假设我的程序需要以下形式的参数 0 562 1 4e 2 即浮点对 我应该如何在没有正则表达式的情况下在 C 中解析此输入 我知道在用户输入方面需要考虑许多极端情况 但我们假设给定的输入与上述格式紧密匹配 除了进一步的空格 在C中 我可以做
  • 实用的 Zend_ACL + Zend_Auth 实现和最佳实践

    Context 我的问题与我正在开发的一个论坛有关 该论坛与SO非常相似 其中有 有权查看话题但无法回复或投票的访客 具有足够代表的成员可以编辑 投票其他帖子 并且默认情况下他们可以回复并拥有与来宾相同的权限 几乎可以做任何事情的管理员 我
  • 查询多个 AWS 区域中的活动 EC2 实例

    我们可以同时查询多个AWS区域吗 我想通过 AWS CLI 查询来自多个 AWS 区域的数据 例如每个区域中活动的所有 EC2 实例 不 无法在一个设置中设置多个区域 你可以做这样的事情 for region in aws ec2 desc
  • 将路由与 Symfony 中的当前请求进行比较

    对于我的网站导航 我想指示当前页面 如果导航中的每个页面都有自己的路线 是否有办法查看当前请求是否与该路线匹配 就像是 request gt getRoute my route 或者 更一般地说 在 Symfony 中创建站点导航时是否有设
  • 单元测试如何确认已引发异常

    我正在为 C 类编写一个单元测试 我的其中一个测试应该会导致该方法在添加数据时引发异常 我如何使用单元测试来确认异常已被抛出 这取决于您使用的单元测试框架 在all在这种情况下你可以这样做 Test public void MakeItGo