-2
需要在一些配置文件鍵的幫助下,在相同的測試類中執行Moq單元測試和實際單元測試。 是否可以使用基於配置值分配的相同對象執行此操作?實現相同類別的Moq單元測試和實際單元測試方法
意思是如果配置文件鍵是「Moq」,那麼Moq單元測試將運行,如果不是,實際單元測試將以相同的測試類和相同的方法運行。
需要在一些配置文件鍵的幫助下,在相同的測試類中執行Moq單元測試和實際單元測試。 是否可以使用基於配置值分配的相同對象執行此操作?實現相同類別的Moq單元測試和實際單元測試方法
意思是如果配置文件鍵是「Moq」,那麼Moq單元測試將運行,如果不是,實際單元測試將以相同的測試類和相同的方法運行。
是的,你可以,但可能這不是最好的做法。 例如,
public class MyClass
{
IDependency _d;
public MyClass(IDependency d)
{
_d = d;
}
}
public class Dependency : IDependency
{
}
在測試類,我能有這樣的事情:
[TestClass]
public class MyClassTests
{
MyClass _sut;
Mock<IDependency> _mockDependency;
Dependency _realDependency;
[TestInit]
public void Init()
{
var shouldUseMock = ConfigurationManager.AppSettings["key"];
if(shouldUseMock)
{
_mockDependency = new Mock<IDependency>();
_sut = new MyClass(_mockDependency.Object)
}
else
{
_realDependency = new Dependency();
_sut = new MyClass(_realDependency);
}
}
}
的問題將根據不同情況來設定的預期,它使測試類更難保持。您應該創建兩個測試,一個用mock
進行實際單元測試,另一個用真正的實現進行集成測試。
我不清楚你在問什麼。我從來沒有聽說過Moq單元測試和「實際」單元測試之間的區別,你能詳細說明一下嗎? –
你應該更具體。我真的不知道你在說什麼。 –
對不起。意思是有兩種方法可以實現單元測試 1.使用某些框架,我正在使用的Moq來嘲笑結果。 2.實際單元測試調用,它將直接調用數據庫來獲取實際數據。 我想實現兩個相同的測試方法,可以使用配置值進行管理。 意思是如果我設置1,那麼Moq單元測試應該發生並且 如果我設置2實際單元測試應該發生。 – ashwinrajagopal