gpt4 book ai didi

c# - 模拟大数据对象

转载 作者:太空狗 更新时间:2023-10-29 23:24:25 25 4
gpt4 key购买 nike

我正在为我们的 C# 项目编写单元测试。在我正在测试的几个类中,我们有如下所示的方法:

public ClassWithLotsOfProperties doStuffINeedToTest(AnotherClassWithLotsOfProperties input)
{
//do stuff
}

我计划通过模拟几个 AnotherClassWithLotsOfProperties 对象来测试它们,确保我知道当第一个对象传入时期望的 ClassWithLotsOfProperties 对象,然后验证我得到了我正在寻找的结果。现在,我们的团队确信被测试的类正在正常工作,所以我正在运行程序,让它进入调用 doStuffINeedToTest() 的状态,并在最后设置断点方法的详细信息,以便我可以记下方法的输入和输出对象的状态。

此方法的缺点是 AnotherClassWithLotsOfPropertiesClassWithLotsOfProperties 都有许多属性,这意味着从调试器中写下它们的值,然后在单元测试会很乏味。有没有更快的方法来设置这些单元测试?现在,我正在使用 NUnit 和 Moq。我们的团队希望坚持使用 NUnit,但我愿意考虑另一个模拟框架。

特别是,我认为如果我可以让 Visual Studio 或模拟框架在我运行程序时自动为我生成模拟对象来设置我想要作为测试基础的方法调用,那将是一件好事。有什么办法可以做这样的事情吗?

最佳答案

使用AutoFixture .这将使生成测试数据变得非常容易。这是一个例子:

var testData = fixture.CreateAnonymous<ClassWithLotsOfProperties>();

基本上它会迭代类的所有属性,并为每个属性设置该类型的值。

关于c# - 模拟大数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350273/

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