- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的问题是如何在一个测试类中设置多个夹具?
但是 Zoo 类的构造函数不能处理多个 fixture。
例如:
public class Zoo : IClassFixture<Tiger>, IClassFixture<Wolf>, IClassFixure<Bird>
{
private IFixture fixture;
public Zoo(IFixture fixture)
{
this.fixture = fixture;
}
[Fact]
public void TestAnimal()
{
//Arrange
int actualBonesCount = this.fixture.BonesCount;
int expectedBonesCount = 2;
//Act & Assert
Assert.Equal(expectedBonesCount, actualBonesCount );
}
}
虎类
public class Tiger : FixtureBase
{
public Tiger()
{
this.BonesCount = 4;
}
}
鸟类类
public class Bird: FixtureBase
{
public Bird()
{
this.BonesCount = 2;
}
}
测试夹具基类
public class FixtureBase : IFixture
{
public int BonesCount { get; set; }
}
和界面
public interface IFixture
{
int BonesCount { get; set; }
}
最佳答案
首先,让我们记忆一下我们什么时候想在 xUnit 中使用 Class Fixtures:
When to use: when you want to create a single test context and share it among all the tests in the class, and have it cleaned up after all the tests in the class have finished.
如您所说,您希望将 Zoo
测试类中的方法重用于实现测试。既然实现使用继承,为什么不对测试类也使用继承呢?
public abstract class Zoo
{
protected readonly IFixture Fixture;
protected Zoo(IFixture fixture)
{
Fixture = fixture;
}
[Fact]
public void TestAnimal()
{
//Arrange
int actualBonesCount = Fixture.BonesCount;
int expectedBonesCount = 2;
//Act & Assert
Assert.Equal(expectedBonesCount, actualBonesCount);
}
}
public class BirdTests : Zoo, IClassFixture<Bird>
{
public BirdTests(Bird fixture)
: base(fixture)
{
}
}
public class TigerTests : Zoo, IClassFixture<Tiger>
{
public BirdTests(Tiger fixture)
: base(fixture)
{
}
}
不过,我真的不明白您希望每个测试如何通过,因为您在通用测试中将 BonesCount
硬编码为 2。
关于c# - Xunit 多个 IClassFixtures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319420/
我找不到任何关于我认为是一个相当明显的问题的信息。xunit.console.clr4 命令行 arg 帮助状态: usage: xunit.console.clr4 [options] usage
当我们使用 MSTest 时,我们有几个环境有自己的运行设置。由于 Microsoft 正在放弃 MSTest,我们将转向 xUnit。无论是通过运行设置还是命令行属性,我都需要一种在 xUnit 测
我试图使用 OpenCover(今天下载)来覆盖我的测试。这是我使用的命令行: OpenCover.Console.exe -target:"c:\Programmes2\xunit\xunit.co
我正在学习使用单元测试,我创建了一个项目,添加了 xunit 引用。 以及以下代码: namespace UnitTestProject { public partial class Form
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
我有一个在 Windows 上构建的程序集 我想在 Linux 中的单声道上运行 xUnit 测试。 但是,我发现虽然其中 400 个测试可以(按顺序)运行,但某些测试要么挂起 xUnit 运行程序,
我有一个 F# 类库,其中包含使用 NuGet 安装的“xUnit.net”和“xUnit.net Runners”包。我有以下代码: module XUnitTest open Xunit [] l
I know that this question has been asked multiple times before I raise it again, However I still cou
我们使用的是 dotCover 2.7 和 xUnit.net 1.9.2。 在我的机器 (Windows 7) 和同事的机器 (Windows 8) 上,我们可以从命令行针对我们使用 xUnit.n
是否可以将 xUnit 与 LINQPad 一起使用? 能够首先为在 LINQPad 中设计的概念编写一些测试会很棒。这比添加另一个 ConsoleApp23423894238 更容易,只是为了能够快
我有一组需要共享状态的 xunit.net 测试。希望我希望这些测试能够并行运行。所以我希望运行者这样做: 创建共享夹具 运行并行所有使用该夹具的测试 在阅读 xunit 文档时,它说要在测试类之间共
我需要跳过基于类中某些 bool 条件的测试方法。是否可以?如何实现?我试过扩展 FactAttribute 但我无法获得 Test 类的实例。 我的代码如下: using System; using
我有兴趣在多个类上重用测试理论,特别是一些需要相同测试的构造函数。我最初有使用委托(delegate)来执行此功能的想法。 但是,我认为我可能正在尝试重新发明轮子,尽管 C# 具有一些功能,但我认为我
我正在为我的 DataAccessRepository(使用 Entity Framework )类编写测试用例。此类在构造函数中采用两个参数。 1)连接对象 2) Automapper 对象 现在,
xUnit 相当于 NUnit 的 [TestFixtureSetUp] ? 我们探索发现IUseFixture相当于[TestFixtureSetUp] ,但它没有按预期工作。 正如我们所探索的(在
Xunit 1.9.x 为用户提供了 DynamicSkipExample.cs 帮助他设置动态跳过 [Fact] 的示例。 事实证明,这在执行一些跨平台开发时非常有用。当由于底层上下文(操作系统、文
我正在尝试使用 xUnit.net 作为 SpecFlow 的测试运行器。来自官方下载区的 SpecFlow 1.2 二进制文件不包含 xUnit.net 提供程序,但 GitHub 上的主分支有一个
当我尝试运行我的 xUnit.net 测试时,出现此错误: [xUnit.net 00:00:00.63] xunit.UnitTest1.TestTheAnswer [FAIL] Fai
我已经转移到 xunit.net 2.0 测试版,但需要 AutoFixture 的一些功能,这仍然取决于当前的 1.9.2 稳定版本 (CompositeDataAttribute)。据我所知 Au
我已经使用 NUnit 多年了,我想尝试 XUnit。所以我安装了 XUnit 并运行了允许您通过 TD.net 运行 XUnit 的可执行文件。 我似乎不能一次运行多个测试。使用 NUnit + T
我是一名优秀的程序员,十分优秀!