问题标签 [xunit.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
757 浏览

c# - xunit 测试是否完全隔离运行?

如果我有一个静态类:

在 xunit 测试中,我做了这样的事情(人为):

两个测试共享外部静态类,还是测试之间完全隔离?

0 投票
2 回答
11846 浏览

c# - Xunit 的 App.config

我正在为一些依赖于一些配置设置的帮助程序类编写一些xUnit测试,这些配置设置通常存储在执行项目的 App.config 或 Web.config 中。

配置如下所示:

我正在使用 GUI 运行程序 (xunit.gui.clr4.exe) 和 xUnit 控制台运行程序(在 Jenkins CI 服务器上)运行 xUnit 1.9。目前,我可以通过手动设置 xunit.gui.clr4.exe.config 和 xunit.console.exe.config 文件将这些配置值“注入”到测试环境中);然而,这是乏味且容易出错的。

我还可以在夹具中模拟这些配置设置。但是在 10 个不同的文件中使用相同的夹具是相当重复的。

有没有更好的方法来使用 xUnit 模拟这些配置设置,例如为测试项目提供 App.config 文件?

0 投票
1 回答
437 浏览

tdd - 由外而内不同层的 BDD 解决方案测试

最近,我开始阅读 BDD 和 TDD 并迷上了。我迷失在大量杂乱无章的信息来源和关于什么是最好什么不是什么的不同意见中。最后我选择了xBehave & xUnit。我喜欢流畅的语法以及使用 Fluent Assertions 和 Fluent Validation 轻松定义行为。

我也在尝试通过我正在学习的测试项目来实现洋葱架构。这是我的场景:为了简单起见,该项目是一个产品跟踪器。我可以创建产品并跟踪谁拥有它。我想实现两个规范:

  • 当创建没有名称的新产品时,应显示错误
  • 如果在没有分配所有者的情况下创建新产品,则应显示错误。

我创建了实例化一个新产品和一个新产品服务的规范,而新产品服务又创建了产品。规范通过并且正在验证,现在问题是:

  1. 如何测试我的 ProductRepository 类?我是接下来测试它还是模拟它并先完成所有规范,然后再回来测试存储库类?
  2. 我应该在第一个规范中嘲笑 ProductService 类吗?
  3. 这是在单元测试级别完成的吗?我应该创建一个单元测试类吗?
  4. 测试存储库不会使其成为集成测试吗?

到目前为止,我还没有 UI,我正在为域、服务和基础架构层编写规范。

  • 我需要使用 watin 进行 UI 测试吗?
  • 切换到 watin/specflow 会更有意义,并且会节省从上到下进行全面测试层的努力吗?

这是我研究的规格之一:

提前感谢您的回复,如果您正在回答此线程,请提供一些材料/文章/示例代码,以说明您的建议为什么会更好地遵循。

0 投票
3 回答
9448 浏览

c# - 如果构造函数抛出异常,是否有更合适的测试?

通常你测试,如果在某个方法中抛出异常,如下所示。我使用FluentAssertions

但是如何测试,如果在构造函数中抛出异常?我只是这样做了,但是通过FluentAssertions是否有更合适的方法?

0 投票
2 回答
5757 浏览

c# - 如何使用 xUnit.net 进行单元测试控制台输出?

我有一个打印类的私有变量的方法。

如何创建单元测试以确保它在控制台上打印我期望的值?

0 投票
2 回答
297 浏览

f# - 从 TestDriven.NET 运行 F# xUnit Fact 报告“看起来您正在尝试执行 xUnit.net 单元测试。”

我正在尝试使用 TestDriven.NET 运行 xUnit 测试(从 F# 模块,如果它有任何区别),但无论我做什么,我都会收到此错误:

我尝试按照建议进行操作,即我复制了文件

到带有 xunit.dll 的文件夹,然后我运行xunit.installer.exe. 我怎样才能让它工作?

0 投票
1 回答
235 浏览

unit-testing - 如何使用 xunit 配置测试流程

我是新 xunit,想使用 xunit 配置测试流程。例如,有几种测试方法 A、B、C、D,我想以几种方式运行它们: 1. 按特定顺序运行它们 B、A、C、D 2.将 A、B、C 变形为测试列表,它们可以以随机顺序运行。ETC...

我之前用过MSTest,发现这些可以通过修改config文件来设置,我想知道在xunit中应该如何实现?

谢谢。

0 投票
6 回答
56103 浏览

c# - XUnit Assertion 用于检查对象的相等性

我正在使用 XUnit 框架来测试我的 C# 代码。

在这个框架中是否有任何可用的断言方法来进行对象比较?我的目的是检查每个对象的公共和私有成员变量是否相等。

我尝试了这些替代方案,但很少奏效:

0 投票
2 回答
9200 浏览

c# - xUnit 和 Moq 不支持 async - await 关键字

我正在尝试发现如何将 async 和 await 关键字应用于我的 xUnit 测试。我正在使用 xUnit 1.9 和 Async CTP 1.3。这是我的测试用例

我有一个接口,它指定一个异步方法调用

我有一个使用接口并调用异步方法的类

在我的测试中,我希望检查该方法DoThatAsyncOperation是否使用正确的值调用该方法,因此我模拟接口并使用 Moq 来验证调用

此测试使用asyncandawait关键字。当它运行时,它会错误地通过,因为 Moq 应该断言验证失败。调用后的任何代码sut.DoThatAsyncOperation("test");都不会运行

这个测试是在没有 await 和 async 关键字的情况下设置的,并且可以通过。

这是 xUnit 和 Moq 的预期行为吗?


更新

感谢斯蒂芬的评论,我设法通过进行两项更改来修复第一个测试。测试现在返回一个 Task 而不是 void,Mock 也返回一个 Task。

0 投票
2 回答
201 浏览

visual-studio-2010 - 使用 xUnit 创建 ASP.NET MVC 3 项目时出错:找不到 xunit.targets

我使用 xUnit.net 创建了一个 ASP.NET MVC 3 项目和一个单元测试项目。

新项目 http://img841.imageshack.us/img841/38/newprojectsnt.png

但是我遇到了这样的错误,并且没有创建单元测试项目。

错误 http://img15.imageshack.us/img15/4725/errordp.png

有谁知道如何修理它?我在 Windows 8 Release Preview 上使用 Visual Studio 2010 Professional SP1。

谢谢。