c# - 如何识别我的代码何时在 C# 中进行测试?

标签 c# .net testing .net-core xunit

我在测试 Controller 时遇到了麻烦,因为在我的 Startup 中有一些行在测试时为空,我想添加一个条件以仅在未测试时运行这些行。

// Desired method that retrieves if testing
if (!this.isTesting())
{
  SwaggerConfig.ConfigureServices(services, this.AuthConfiguration, this.ApiMetadata.Version);
}

最佳答案

正确答案(虽然没有帮助):它应该能够这么说。应用程序应该对它所做的一切都不知道它是在生产还是测试中。

但是,要在更简单的设置中测试应用程序,您可以使用加载的假模块或模型模块,而不是重量级生产模块。

但是为了使用它,您必须重构您的解决方案并使用注入(inject)。

我找到的一些链接:

Designing with interfaces

Mock Objects

Some more on Mock objects

关于c# - 如何识别我的代码何时在 C# 中进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57756668/

相关文章:

C#、日期时间格式、mont 名称、cultureinfo

.net - 将二维集合绑定(bind)到某个控件

go - 在 Go 中测试生命周期。是否可以在不重复代码的情况下添加拆卸方法?

mongodb - 如何使用 Scala 将 1 亿条记录加载到 MongoDB 中进行性能测试?

c# - 实体对象附加/未附加到 dbContext

c# - 如何创建新的实体对象,在 SaveChanges() 之前在模型中修改它

.net - 使用正则表达式和标签提取部分文本

c# - 当使用的字体不支持这种语言时,Label 控件如何正确显示日语字符?

ios - 如何使用 Xamarin 和 F# 在 iOS 上进行单元测试

c# - 如何针对 SQL Server 中的数据库保存过程?