繁体   English   中英

当这些状态是内部属性时,如何使用单元测试创​​建测试状态?

[英]How do I create test states with unit testing when those states are internal properties?

我有一个单独的类库,我正在使用我的所有单元测试(使用nunit)。 在测试项目中,我有一个帮助程序类,为我创建测试对象。 设置这些对象时,我需要设置一些我标记为内部的值。 我这样做的原因是因为这些对象实际上是工作流程的一部分,所以我只能通过实际完成工作流程来实现这些属性状态,这种工作流程会破坏单元测试的想法。

例如,我首先测试的方法。 它会检查是否有某个批准,如果有,它会将其移动到链中的下一步(或者更确切地说,它检查是否收到了下一个批准,依此类推)。 如果不是,则将其重新分配给需要批准的人。

所以我要做的是创建一个处于此过程某个阶段的测试票据。 例如,第一个测试运行第一个批准者未批准的方法,并检查以确保将其重新分配给该人。 下一个测试将在批准者HAS批准的地方运行,并确保它在树下移动。

我明显面临的问题是测试类位于不同的命名空间中,因此我无法点击内部属性。 我不确定是否有解决这个问题,或者我是否遗漏了一些其他基本原因让我支持这个角落(设计气味?)。 我意识到你通常只想为公共api编写测试,但我的部分测试要求我对私有字段进行一些设置。

有什么建议么?

您可以使用InternalsVisibleTo属性指定UnitTest程序集可以访问该类的内部属性。

这紧密地结合了你的测试和'真实'组装,但这应该让你工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM