问题标签 [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 投票
2 回答
21730 浏览

c# - xUnit.NET 有什么好的文档/书籍/教程吗?

在我搜索 C# 的单元测试工具时,我发现了 xUnit.NET。到目前为止,我阅读了http://xunit.codeplex.com/上的大部分文章,甚至尝试了如何使用 xUnit.net 中给出的示例?.

但遗憾的是,在官方页面上我只能找到 xUnit.NET 的基本信息。是否有任何进一步的信息可供使用?

0 投票
6 回答
55824 浏览

c# - 在 xUnit.net 中测试参数化,类似于 NUnit

xUnit.net框架中是否有类似NUnit以下特性的手段?

这将在 NUnit GUI 中生成 8 个单独的测试

这将生成 5 个单独的测试并自动比较结果 ( Assert.Equal())。

这将生成 6 个组合测试。无价。

几年前我尝试过 xUnit 并喜欢它,但它缺少这些功能。没有他们就活不下去。有什么改变吗?

0 投票
2 回答
798 浏览

asp.net-mvc-3 - Asp.Net Mvc HtmlHelper 测试 VeiwContext.Writer.WriteLine

我有一个 HtmlHelper 用于输出一些手风琴风格的功能。这个助手将在整个站点中广泛使用。

用于创建此功能的代码广泛使用TagBuilder,当然我们使用以下方式输出 html:

我们有一些使用这种模式的助手,并且效果很好。

到目前为止一切都很好 - 它正是我想要的。然而 - 测试这被证明是一场噩梦。我该如何测试htmlHelper.ViewContext.Writer.WriteLine

如果重要,我们正在使用 xUnit 和 Moq

0 投票
1 回答
5376 浏览

unit-testing - 如何为存储库更新方法编写单元测试?

我开始使用 xUnit.net 和 Moq 进行单元测试。我正在为以下方法编写测试Update()方法AppService

_appRepository并分别_cacheManager派生自接口IRepository<App>ICacheManager。我正在使用 moq 在我的单元测试中创建这些对象的模拟,如下所示:

我知道我需要模拟来模拟存储库中的更新成功,特别是调用_appRepository.Update(entity);

我的问题是,最好的方法是什么?我应该在调用时只使用回调方法Setup()mockAppRespository?创建虚拟集合并在更新方法上设置期望以修改虚拟集合是否标准?

0 投票
1 回答
436 浏览

xunit.net - 如何设置要在 xunit.console 中运行的测试命名空间的名称

nunit-console 具有“/run”选项来运行特定的测试夹具或命名空间来运行:

xunit.console.exe 中是否有等效选项?

0 投票
5 回答
42178 浏览

c# - 如何在 xUnit 中设置测试用例序列

我已经用 C# 编写了 xUnit 测试用例。该测试类包含很多方法。我需要按顺序运行整个测试用例。如何在 xUnit 中设置测试用例序列?

0 投票
1 回答
898 浏览

unit-testing - 使用 Moles 和 xUnit.net 运行单元测试的未处理 MethodAccessException

我在 Visual Studio 2010 (.NET 4) 中有一个单元测试项目,它利用 xUnit.net 测试框架、Moq 和 Moles Isolation 框架来生成静态方法的存根。我在 64 位机器上使用 xUnit 1.9 版。

要从命令行运行测试,我使用以下命令:

moles.runner.exe Project.Tests.dll /runner:xunit.console.clr4.exe

但是,我每次都会遇到以下异常:

检测...启动 xUnit.net 控制台测试运行程序(64 位 .NET 4.0.30319.1)版权所有 (C) 2007-11 Microsoft Corporation。

未处理的异常:System.MethodAccessException:尝试通过安全透明方法“Xunit.ConsoleClient.Program.Main(System.String[])”访问安全关键方法“System.AppDomain.add_UnhandledException(System.UnhandledExceptionEventHandler)”失败。在 Xunit.ConsoleClient.Program.Main(String[] args) 在 Microsoft.Moles.Runner.MolesRunner.Runner.Run(String runner, String[] args) 在 Microsoft.Moles.Runner.MolesRunner.RunnerRunner.Run(String runner , String[] args) 在 Microsoft.Moles.Runner.MolesRunner.LaunchRunnerEntryPoint(MolesRunnerOptions options) 在 Microsoft.Moles.Runner.MolesRunner.RunnerMain(String[] args) 在 Microsoft.Moles.Runner.Program.Main(String[]参数)

看起来异常来自 xUnit;但是,我可以单独使用 xunit.console.clr4.exe 运行测试而不会出现问题。只有在使用 Moles 跑步者的 xUnit 控制台时才会失败。

我在论坛帖子中找到了这个:

在 .NET 4 框架中,安全透明规则防止任何安全透明代码调用安全关键代码。

我可以检查什么来确定此错误的原因?我需要更改安全设置以防止这种情况吗?

注意:我在 32 位工作站上也遇到了同样的问题。

更新:我决定从http://xunit.codeplex.com/SourceControl/changeset/changes/600246119dca下载代码并自己调试。在 xunit.console 项目(其输出是从 Moles 运行器调用的 exe)中,执行的主线程如下所示:

当我在调试代码时运行测试时,一切正常,正如预期的那样(因为我从来没有单独从 xUnit 运行测试时遇到问题)。我注意到以下行,这似乎是根据我原始帖子中的错误消息和堆栈跟踪引发异常的地方:

我注释掉了这一行,构建了xunit.console.exe,并尝试在再次执行 Moles 运行器时将其用作/runner参数。这一次,没有抛出异常。

我仍然不知道为什么从 moles.runner.exe 调用时会在此行上引发安全异常,但当我自己运行 xUnit 控制台时却没有。

0 投票
1 回答
275 浏览

c# - VS 11 单元测试框架

我们已经开始从事涉及 DDD - 敏捷 - TDD 方法的 VS11 项目。

我正在使用 VS 11 Beta,新的单元测试功能给我留下了深刻的印象,其中包括使用 3rd 方框架(xUnit、NUnit...)的可能性。

不幸的是,我无法找到任何关于这些不同框架之间的公平比较以及每个框架在新 IDE 中提供的新功能的文章/文章。

哪种方法适合这种密集型和大型项目的方法?

感谢你的支持。

梅莱克

0 投票
1 回答
19515 浏览

unit-testing - 如何在 xunit.net 中测试两个对象是否相等?

我正在阅读测试驱动开发:示例。所有示例都使用 Java 和 Junit(我在第 10 章)。有一种测试方法可以测试两个对象是否相等。我已经覆盖了该类的 Equals 但是在运行我的测试时它失败了。

这是示例代码

这是我的测试代码

当我运行测试时,它将失败并显示此消息。

我认为Assert.Equal比较对象的值和类型。所以,我查看了 xunit 代码并找到了那个Assert.Equalcall IEqualityComparer.Equals。如果我想用覆盖方法比较两个对象,我应该使用什么方法?

更新
我在Windows 7Visual Studio 11 Betaxunit.net 1.9.0.1566上测试(从 nuget 获取文件)

0 投票
0 回答
192 浏览

.net - xUnit.Net - 是否可以忽略整个命名空间?

在我的测试程序集中,我经常有一个 Spikes 目录,我在其中放置了......嗯......项目早期的尖峰代码。

我很少维护甚至运行这些测试,因为它们通常与连接到其他系统和关注其他测试涵盖的用例有关。

是否可以在 xUnit 中将整个命名空间标记为忽略,还是应该删除代码?