我有一个输出简单报告文件的类.它从XML文件中读取一些记录ID号:每个用于查找存储在数据库中的匹配记录.然后它将每个记录的详细信息写入CSV文件.
我想知道 - 组织它的最佳方法是什么,以便它易于测试,但遵循封装原则?我认为最好避免与文件系统交互,除非绝对必要,所以我正在处理Stream对象.单元测试时,我可以使用部分模拟对象来覆盖读取或写入文件的位.
我也不确定何时/何处处理流而不使单元测试变得棘手.看起来我可能不得不将流暴露给单元测试.
我的项目使用NHibernate进行数据访问,使用Spring .NET进行依赖注入,使用Rhino.Mocks进行单元测试.
目前我有类似的东西:
public class ReportBiz
{
//Access to repository, populated by Spring
internal ICardRequestDAO CardRequestData { get;set;}
//This normally returns a FileStream containing data from the XML file. When testing this is overridden by using a Rhino.Mocks partial mock and returns a MemoryStream
internal virtual Stream GetSourceStream()
{
//Load file and return a Stream
...
}
//This normally returns a FileStream where CSV data is saved. When testing this is overridden by using a …Run Code Online (Sandbox Code Playgroud) 在 Visual Studio 中,我可以使用Refactor -> Extract Interface...选项从类上的公共方法生成接口。然而,这不会复制 XML 注释,我最终花了几分钟复制和粘贴它们。在自动创建界面时,是否有任何宏或加载项可以使用类上的现有注释?
在我的程序中,我需要访问Oracle 11g数据库的模式.我一直试图使用这样的查询获取表的列表:
SELECT t.TABLE_NAME, t.OWNER
FROM ALL_TABLES t
WHERE t.DROPPED = 'NO'
ORDER BY t.TABLE_NAME
Run Code Online (Sandbox Code Playgroud)
查询工作,我得到一个表列表.不幸的是,当使用返回的表名查询某些表时,我收到以下错误:
ORA-00942:表或视图不存在
什么可能导致此错误?它可以归结为特权吗?
在一个单独的问题中,我也有点困惑,是否可能有两个或同名的表,以及如何区分这两个.我需要注意这个吗?
我使用.NET中的Oracle.DataAccess提供程序连接到数据库.它是一个远程服务器,不幸的是我对它的访问非常有限.
我正在使用jqGrid插件,有时我需要刷新网格并设置所选行以匹配我在页面另一部分详细显示的记录.我有以下代码但它不起作用:
$("#AllActions").trigger("reloadGrid").setSelection(selectedRow);
Run Code Online (Sandbox Code Playgroud)
selectedRow参数来自一个事件处理程序,当数据发生更改并且需要更新网格时,该事件处理程序将被调用.
我敢肯定,问题是,当选择被定格不加载,因为如果我把一个呼叫提醒()的调用之间触发(),并为setSelection(),它的工作原理.
我会很感激任何建议.
[编辑]看起来jqGrid的setSelect在reloadGrid相关但没有得到解决后不起作用.[/ Edit]
.net ×2
c# ×1
callback ×1
class-design ×1
comments ×1
javascript ×1
jqgrid ×1
jquery ×1
macros ×1
ora-00942 ×1
oracle ×1
oracle11g ×1
schema ×1
stream ×1
unit-testing ×1