首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免每次考试的TestFixtures安排重复?

如何避免每次考试的TestFixtures安排重复?
EN

Stack Overflow用户
提问于 2019-10-25 13:59:21
回答 1查看 370关注 0票数 2

我有很多测试,这些测试都安排了一些TestFixtures,我发现我经常重复这个安排代码。每个测试的前几行几乎是相同的。

是否有一种方法可以在所有测试之间声明一个共享的TestFixture,同时仍然在每个测试之间“重置”它们,从而保持测试的独立性?

代码语言:javascript
复制
public class MyClassTests
{
    private readonly Mock<ICoolService> _mockCoolService;
    private readonly Mock<IGreatService> _mockGreatService;
    private readonly Mock<INiceService> _mockNiceService;
    private readonly MyClass _controller;

    public MyClassTests(){

        //initialize the services.

        _controller = new MyClass(_mockCoolService.Object, _mockGreatService.Object, _mockNiceService.Object);
    }

    [Fact]
    public async Task MyTest_ShouldDoThis(){
        var batchName = TestFixture.Create<string>();
        var documentName = TestFixture.Create<string>();
        var controlId = TestFixture.Create<int>();

        _mockCoolService.Setup(x=>x.ACoolMethod(batchName, documentName)).Returns(batchName)

        var result = _controller.DoThis()

        //VerifyAll
    }

    [Fact]
    public async Task MyTest_ShouldDoThat(){
        var batchName = TestFixture.Create<string>();
        var documentName = TestFixture.Create<string>();
        var controlId = TestFixture.Create<int>();

        _mockGreatService.Setup(x=>x.AGreatMethod(batchName, documentName)).Returns(batchName)

        var result = _controller.DoThat()

        //VerifyAll
    }

    [Fact]
    public async Task MyTest_ShouldDoAnotherThing(){
        var batchName = TestFixture.Create<string>();
        var documentName = TestFixture.Create<string>();
        var controlId = TestFixture.Create<int>();

        _mockNiceService.Setup(x=>x.ANiceMethod(batchName, documentName)).Returns(batchName)

        var result = _controller.DoAnotherThing()

        //VerifyAll
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-25 14:12:28

xUnit文档建议将这样的代码放在构造函数中:

xUnit.net为每个正在运行的测试创建测试类的一个新实例,因此放置在测试类构造函数中的任何代码都将为每个测试运行。

xUnit文档:测试之间的共享上下文

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58560027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档