gpt4 book ai didi

c# - 如何在代码中判断我们是否从 testmethod .net 测试运行

转载 作者:太空狗 更新时间:2023-10-29 22:29:08 26 4
gpt4 key购买 nike

有没有办法知道何时通过运行测试方法调用代码?

bool MyMethod()
{
if ( /* are we running a test? */ )
{
return true; // otherwise this will fail from the automated build script
}
else
{
// run the proper code
}
}

并且请不要再说“这是一个非常糟糕的主意”的评论 :)

最佳答案

您认识到这可能是个坏主意,但您可能不知道其他选择。 您应该查看 mocking frameworks - 它们可以提供一种在单元测试运行时将替代实现注入(inject)代码的方法。这是允许代码在测试和生产中表现不同的既定做法。 p>

回到主要问题。

这取决于您使用的单元测试框架。我不知道 NUnit 中的特定功能(例如)报告您正在测试中。其他框架(如 MS Test)可能很好地提供了这一点。但是,您自己很容易做到。

如果您绑定(bind)到源代码,只需使用 #define 指令有条件地定义一些您可以分支的变量。

如果您要绑定(bind)到库,我建议您创建自己的类,用于跟踪您是在进行单元测试还是在实际代码中,并在 TestFixture setup method 中设置该类表示您正在运行测试。您还可以使用 Environment.SetEnvironmentVariable 作为避免编写特殊类的方法。

关于c# - 如何在代码中判断我们是否从 testmethod .net 测试运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2446728/

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