在Visual Studio IDE中,我可以通过右键单击要测试的代码并选择创建单元测试的选项,为源文件中的代码创建带有单元测试类的单元测试文件。
测试代码和要测试的代码不仅在同一个文件中,而且也不在同一个名称空间中。
是否可以在同一源文件中编写要测试的代码和测试代码?
如果是,怎么样?我应该将它们放在相同或不同的名称空间中吗? 你能举一些例子吗?
感谢。
答案 0 :(得分:2)
可能,但这也意味着您使用代码部署您的测试,以及任何模拟,虚拟数据等。所有这些都是不必要的并且可能会混淆任何试图使用该库的人。
但是,要回答这个问题,只需使用不同的namespace
块来分隔单独命名空间中的测试类。
namespace MyCompany.MyLibrary
{
// classes
}
namespace MyCompany.MyLibrary.Test
{
// tests, mocks, etc.
}
答案 1 :(得分:1)
是的,没有任何限制"正在测试的代码"是来自。
虽然有点奇怪,你可以只使用UnitTest项目,然后将你尝试的代码放在测试旁边。如果你愿意 - 即使在使用你选择的相同或不同命名空间的相同文件中(C#不是Java,也没有连接文件名/位置和名称空间)
答案 2 :(得分:0)
是的,但是
如果将它们放在与被测系统相同的代码库中,那么在没有部署测试的情况下,您将无法部署系统。您是否希望测试位于生产服务器上?
此外,相同的app.config(或web.config,具体取决于您的解决方案)将适用于您的测试和被测系统。这意味着您无法为AutoFac等设置备用配置,这通常可用于单元/隔离测试。