我正在測試類的方法。但是,其中一些具有非相關內容的屬性,這使得測試失敗。從C#中的模擬對象中刪除方法屬性
例如,我有這個類(在VB.net
但可能是C#
以及)
<AttributeOne()>
<AttributeTwo(Arg1, Arg2)>
Public Overridable Function SomeMethod() As Object
' Stuff
End Function
當我打電話SomeMethod
從我的嘲笑對象,它將提出一些例外,因爲屬性嘗試做一些東西在單元測試環境中是不可能的。
[TestFixture]
public class SomeClassUnitTests
{
[Test]
public void TestSomeMethod()
{
var someClassMock = new Mock<SomeClass>() { CallBase = true };
//Exception is thrown
var result = someClassMock.Object.SomeMethod();
}
}
測試寫在C#
。我正在使用Moq
和Nunit
如何在單元測試時忽略這些屬性?
如果這樣,你違反了單一責任原則是這樣的。當您應該解決原因時,您正試圖治療症狀。 –
@HimBromBeere我正在測試'SomeMethod',並且此方法具有一些評估全局安全信息的屬性(例如,如果用戶已登錄並且有東西)。然而,在單元測試中沒有這樣的信息,所以測試失敗了,我無法測試該方法,明白了嗎? – RafaelC
@DavidL你能再詳細一點嗎? – RafaelC