是否可以将要测试的代码和测试代码编写在同一源文件中



在Visual Studio IDE中,我可以通过右键单击要测试的代码并选择创建单元测试的选项,为源文件中的代码创建一个单元测试文件,其中包含单元测试类。

测试

代码和要测试的代码不仅在同一个文件中,而且不在同一个命名空间中。

是否可以将要测试的代码和测试代码编写在同一源文件中?

如果是,如何?我应该将它们放在相同还是不同的命名空间中?你能举几个例子吗?

谢谢。

这是可能的,但这也意味着您可以使用代码以及任何模拟、虚拟数据等部署测试。 所有这些都是不必要的,可能会使任何试图使用该库的人感到困惑。

但是,要回答这个问题,只需使用不同的namespace块将测试类分隔在单独的命名空间中。

namespace MyCompany.MyLibrary
{
    // classes
}
namespace MyCompany.MyLibrary.Test
{
    // tests, mocks, etc.
}

是的,"待测试代码"的来源没有任何限制。

虽然这有点奇怪,但你可以只有一个 UnitTest 项目并将你尝试的代码放在你的测试旁边。如果需要 - 即使在使用相同或不同命名空间的相同文件中(C# 不是 Java,并且没有连接每个文件名/位置和命名空间)

是的,但是

如果将它们放在与受测系统相同的代码库中,则如果不同时部署测试,将无法部署系统。 是否希望测试位于生产服务器上?

此外,相同的 app.config(或 web.config,具体取决于你的解决方案)将同时应用于你的测试和受测系统。 这意味着您无法为 AutoFac 之类的内容设置备用配置,这通常对于单元/隔离测试很方便。

最新更新