gpt4 book ai didi

unit-testing - XUnit 和 AutoFixture Exception No Data found for (test name)

转载 作者:行者123 更新时间:2023-12-04 10:15:39 27 4
gpt4 key购买 nike

我有一个非常简单的测试,如下所示。
我尝试使用 AutoDataAttribute 卡住我的两个依赖项+ AutoMoqCustomization .

class AutoMoqDataAttribute : AutoDataAttribute
{
public AutoMoqDataAttribute()
: base(new Fixture().Customize(new AutoMoqCustomization()))
{ }
}

public class PrBatchEndorseBrokerTest
{
[Theory, AutoMoqData]
public void Process_ValidContext_CallsK2Workflows(
[Frozen]Mock<IK2Datasource> k2,
[Frozen]Mock<IAppConfiguration> config,
PrBatchEndorseBroker sut)
{
// Arrange
var data = new Dictionary<string, object>
{
["Workflow"] = @"KLPurchaseRequest\PR",
["Activity"] = "Endorser",
["ViewFormURL"] = "/Form/KLPurchaseRequestApproval.Form",
["PositiveOutcome"] = "Endorse",
["NegativeOutcome"] = "Reject"
};

// Act
sut.Process();

// Assert
k2.Verify(x =>
x.StartInstance(It.IsAny<string>(),
It.Is<Dictionary<string, object>>(d =>
data.Keys.All(k => d[k] == data[k])))
, Times.Once());
}
}

由于某些原因,当我运行此测试时,出现以下错误:

System.InvalidOperationException: No data found for BlackBox.Stakhanov.Broker.Test.PrBatchEndorseBrokerTest.Process_ValidContext_CallsK2Workflows



我尝试了很多东西,但我无法让它工作!我想我错过了一些大而可能很明显的东西!

我正在使用的软件包:
<package id="AutoFixture" version="3.47.8" targetFramework="net452" />
<package id="AutoFixture.AutoMoq" version="3.47.8" targetFramework="net452" />
<package id="AutoFixture.Xunit" version="3.47.8" targetFramework="net461" />
<package id="Castle.Core" version="3.3.3" targetFramework="net461" />
<package id="Moq" version="4.5.10" targetFramework="net461" />
<package id="xunit" version="2.1.0" targetFramework="net461" />
<package id="xunit.abstractions" version="2.0.0" targetFramework="net452" />
<package id="xunit.assert" version="2.1.0" targetFramework="net461" />
<package id="xunit.core" version="2.1.0" targetFramework="net461" />
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="net461" />
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net461" />
<package id="xunit.extensions" version="1.9.0.1566" targetFramework="net461" />

最佳答案

使用 xUnit.net 2 时,应使用 AutoFixture.Xunit2 ,不是 AutoFixture.Xunit .

您会在您的包裹列表中注意到您有 xunit.extensions版本 1.9.0.1566,与 xUnit.net 2 不兼容。

关于unit-testing - XUnit 和 AutoFixture Exception No Data found for (test name),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38069274/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com