我有一个解决方案,包含25个由C#和托管C ++组成的项目。
我需要测试一个C#项目调用,但这个项目的类型是“Window application”(非DLL)。
即使它是一个Windows应用程序,我的要求是只调用几个内部函数调用(与Windows窗体无关)。
我需要创建一个单独的C#测试项目来调用此功能。有可能这样做吗?
有人可以建议一种方式或例子吗?还有一件事,我无法修改现有的代码。
答案 0 :(得分:2)
有可能这样做吗?
是。引用您希望在测试项目中测试的项目通常是您对代码进行单元测试的方式。
任何人都可以建议一种方式或示例吗?
创建一个单元测试项目,引用包含您要测试的代码的项目,编写测试以测试您要测试的代码。如果您需要重构代码以使其可测试,请执行此操作,或参见下面的内容。
还有一件事,我没有任何自由来修改现有的 源代码。
在这种情况下,您将不得不将代码包装在一些更干净的接口中以允许您测试代码。
这本书Working Effectively with Legacy Code by Michael Feathers对如何获得遗留代码进行了一些很好的建议。