【发布时间】:2020-02-04 17:56:06
【问题描述】:
根据 IClassFixture https://xunit.net/docs/shared-context 的文档,它说
"在 MyDatabaseTests 中的第一个测试运行之前,xUnit.net 将创建一个 DatabaseFixture 实例。对于每个测试,它将创建一个新的 MyDatabaseTests 实例,并将 DatabaseFixture 的共享实例传递给构造函数。”
我盯着“For each test”部分。因为,它只调用了一次继承的fixture,至少在我的代码中是这样。
public class TransportSequenceResourceAggregateServiceTests : IClassFixture<TransportSequenceResourceAggregateServiceFixture>
{
private TransportSequenceResourceAggregateServiceFixture fixture;
public TransportSequenceResourceAggregateServiceTests(TransportSequenceResourceAggregateServiceFixture fixture)
{
this.fixture = fixture;
}
[Fact]
public void If_No_Aggregate_Exist_Return_Null()
{
var sut = fixture.transportSequenceResourceAggregateService;
var aggrate = sut.Get("some_new_resource");
Assert.True(aggrate == null);
}
[Fact]
public void If_Resource_Does_Not_Exists_Create_New_Aggreagate()
{
var sut = fixture.transportSequenceResourceAggregateService;
var aggrate = sut.Create("some_new_resource");
Assert.True(aggrate.ResourcePosition == null);
Assert.True(aggrate.TransportSequences == null);
}
但也许我读错了?
难道不应该在每次运行测试时都创建一个新的fixture 吗?
谢谢
【问题讨论】:
标签: xunit