2011-02-18 82 views
2

对于单元测试,我想模仿不同的命令行参数。如何在运行时将commandLine参数修改为我的程序(环顾四周,但找不到技巧)?基本上我试图找到一种方法来修改READONLY属性Environment.CommandLine的内容。如何修改Environment.CommandLine属性?

+0

你有没有想过用可注射的(甚至是一个单词?)服务代替它,你可以用你的单元测试中的模拟代替它?虽然如果你绝对需要做你想做的事情,我会猜测TypeMock Isolator(http://typemock.com)可以做到。 – 2011-02-18 21:00:31

+3

你不能只用不同的命令行执行程序吗? – 2011-02-18 21:01:44

回答

5

你不能,这是'硬'只读。它来自Windows,GetCommandLine API函数,它不允许修改它。你必须嘲笑它​​。

4

这听起来像是你试图用艰难的方式来测试事情。推测在某个地方你有一个直接从Environment.CommandLine中读取的函数。重构该方法以获取字符串参数(在实际应用程序中将从Environment.CommandLine填充),并独立测试该方法。