我有一个在SubmitClick方法中使用的system.resx资源文件
Protected Sub SubmitClick(ByVal sender As Object, ByVal e As EventArgs)
(...)
If (... AndAlso ...) Then
SetError(Resources.system.groupNoAdminTran)
End If
End Sub
我的问题是,无论我如何尝试对此进行单元测试,当使用以下命令触发SetError时,测试将失败:
"Could not load file or assembly 'App_GlobalResources' or one of its
dependencies. The system cannot find the file specified."
有什么方法可以模拟Resources.system吗?
由于
答案 0 :(得分:0)
这个解决方案可能并不优雅,但我最终会使用它,随时批评。
在参考资料中为每个需要的字符串手动创建了一个属性:
Public Property GroupNoAdminTran() As String
Get
If String.IsNullOrEmpty(_groupNoAdminTran) Then
_groupNoAdminTran = Resources.system.groupNoAdminTran
End If
Return _groupNoAdminTran
End Get
Set(ByVal value As String)
_groupNoAdminTran = value
End Set
End Property
然后可以使用:
Protected Sub SubmitClick(ByVal sender As Object, ByVal e As EventArgs)
(...)
If (... AndAlso ...) Then
SetError(GroupNoAdminTran)
End If
End Sub
至于测试,一个简单的模拟将会:
_moqView.Setup(x => x.GroupNoAdminTran).Returns("GroupNoAdminTranTest");
就是这样。我希望这会有所帮助。