단위 테스트의 경우 다른 명령 줄 인수를 모방하고 싶습니다. 런타임에 commandLine args를 내 프로그램으로 수정하려면 어떻게해야합니까 (둘러 보았지만 트릭을 찾을 수없는 경우)? 기본적으로 READONLY 속성 Environment.CommandLine의 내용을 수정하는 방법을 찾으려고합니다.Environment.CommandLine 속성은 어떻게 수정합니까?
답변
당신은 할 수 없습니다. 이것은 '읽기 어렵습니다'. Windows에서 GetCommandLine API 함수가 나오고 수정하는 것도 허용되지 않습니다. 당신은 그것을 조롱해야합니다.
이것이 올바른 방법 일 것입니다. 불행히도 빠른 방법을 찾으려는 시간이 없습니다. – Denis
그것은 단지 문자열입니다. 틀림없이 문자열을 조롱 할 수 있습니다. –
그냥 익명으로 : 실제로 명령 줄을 기본적으로 수정할 수 있습니다. GetCommandLine()에 의해 반환 된 포인터는 상수가 아닙니다. http://blogs.msdn.com/b/oldnewthing/archive/2009/02/23/9440784도 참조하십시오. .aspx). 그렇게하는 것이 현명한 일인지는 또 다른 일입니다. 감사하게도 어쨌든 관리되는 코드에서는 (쉽게) 가능하지 않습니다. –
어려운 일을 테스트하려는 것처럼 나에게 들립니다. 아마도 어딘가에 Environment.CommandLine에서 직접 읽는 함수가있을 것입니다. 이 메서드를 리팩토링하여 문자열 매개 변수 (실제 응용 프로그램에서는 Environment.CommandLine에서 채워짐)를 가져 와서 해당 메서드를 독립적으로 테스트합니다.
- 1. 늘어난 이미지를 어떻게 수정합니까?
- 2. Ruby 설치를 어떻게 수정합니까?
- 3. java.lang.RuntimeException을 어떻게 수정합니까?
- 4. erlang에서 레코드를 어떻게 수정합니까?
- 5. mysql.rb 드라이버를 어떻게 수정합니까?
- 6. Plone에서 robots.txt를 어떻게 수정합니까?
- 7. 이 누출을 어떻게 수정합니까?
- 8. Request.RawUrl 속성은 어떻게 변경합니까?
- 9. Wordpress : 게시물 클래스를 어떻게 수정합니까?
- 10. KeypressEvent가 작동하지 않습니다. 어떻게 수정합니까?
- 11. 데이터베이스에서 TSD02016 오류를 어떻게 수정합니까?
- 12. PHP_Beautifier의 빈 줄은 어떻게 수정합니까?
- 13. Joomla에서 로그인 양식을 어떻게 수정합니까?
- 14. Windows Gadgets : DOM을 어떻게 수정합니까?
- 15. Java LinkageError 예외는 어떻게 수정합니까?
- 16. 런타임에 web.config appSettings를 어떻게 수정합니까?
- 17. Magento 설치시 unsecure_base_url을 어떻게 수정합니까?
- 18. 이 버퍼 문제를 어떻게 수정합니까?
- 19. 이 LINQ 함수를 어떻게 수정합니까?
- 20. Clojure에서 벡터의 일부를 어떻게 수정합니까?
- 21. Jama에서이 ArrayIndexOutOfBounds 오류를 어떻게 수정합니까?
- 22. MYSQL에서이 쿼리를 어떻게 수정합니까? TO
- 23. 어떻게 장고에서 HttpResponse 개체를 수정합니까?
- 24. 큰 json 문자열은 어떻게 수정합니까?
- 25. 어떻게 VK_ 문제와 NullPointerException을 수정합니까?
- 26. 이 코드 문을 어떻게 수정합니까?
- 27. Perl 메소드 속성은 어떻게 작동합니까?
- 28. applicationName 속성은 실제로 어떻게 작동합니까?
- 29. JDBC URL 속성은 어떻게 작동합니까?
- 30. Firefox ping 속성은 어떻게 사용합니까?
단위 테스트에서 모의로 대체 할 수있는 주사 가능한 (심지어 단어일까요?) 서비스로 대체하는 것에 대해 생각해 보셨습니까? 비록 당신이하고 싶은 일을 절대적으로해야한다면, 나는 TypeMock Isolator (http://typemock.com)가 그것을 할 수 있다고 생각할 것입니다. –
다른 명령 줄을 사용하여 프로그램을 실행할 수 있습니까? –
정말 리팩토링해야합니다. – Holystream