Unit testing 以编程方式将.reg文件合并到win32注册表中

Unit testing 以编程方式将.reg文件合并到win32注册表中,unit-testing,registry,Unit Testing,Registry,以编程方式将.reg文件合并到注册表中的最佳方法是什么?这是用于单元测试的;.reg文件是一个测试工件,它将在测试开始和结束时被添加然后删除 或者,如果有更好的方法对注册表进行单元测试…我通过检查文件关联来研究它 在Windows上,.reg文件似乎只是作为regedit.exe可执行文件的第一个参数调用 所以你可以说regedit.exe“mytest.reg”。我不确定的是如何摆脱弹出的要求您确认的对话框。使用Win32 API函数ShellExecute()或ShellExecuteEx(

以编程方式将.reg文件合并到注册表中的最佳方法是什么?这是用于单元测试的;.reg文件是一个测试工件,它将在测试开始和结束时被添加然后删除


或者,如果有更好的方法对注册表进行单元测试…

我通过检查文件关联来研究它

在Windows上,.reg文件似乎只是作为
regedit.exe
可执行文件的第一个参数调用


所以你可以说
regedit.exe“mytest.reg”
。我不确定的是如何摆脱弹出的要求您确认的对话框。

使用Win32 API函数ShellExecute()或ShellExecuteEx()。如果注释为“打开”,则应合并.reg文件。我还没有测试过它,但它应该可以工作。

可以使用.reg文件删除注册表项,尽管我不确定它的文档化程度如何。以下是方法:

REGEDIT4

[-HKEY_CURRENT_USER\Software\<otherpath>]

编写单元测试最令人沮丧的事情之一是处理依赖关系。关于测试驱动开发,最伟大的事情之一是,它生成的代码与依赖项解耦。酷吧


当我发现自己在问这样的问题时,我会寻找将我正在编写的代码与依赖性分离的方法。将注册表的读取与您想要测试的复杂性分开。

如果您要测试,我将使用reg命令(详细信息如下)。如果您能告诉我们您使用的语言,我们可以提供特定语言的代码

C:>reg/

REG操作[参数列表]

操作[查询|添加|删除|复制| 保存|加载|卸载|恢复| 比较|导出|导入|标志]

返回代码:(REG比较除外)

0-成功 1-失败

有关特定操作类型的帮助:

注册添加/? 注册删除/? [剪下]

约翰尼·马蒂斯:“如果评论‘公开’是什么意思?
regedit /s "myfile.reg"