TDD - 如何为 Assembly.LoadFrom(...) 的方法编写测试用例
我有使用 Assembly.LoadFrom(...) 语句并从该附属程序集返回支持的区域性的方法,那么我如何为该类型的方法编写单元测试。
我所做的是,包装该静态方法/逻辑以在另一个类中返回文化并使用它的实例方法。这是正确的方法吗?
I have got method which is using Assembly.LoadFrom(...) statement and returns the supported cultures from that satellite assembly, so how could I write unit tests for that type of methods.
What I did was, wrapped that static method/logic to return cultures in anther class and used it's instance method. Is this the right approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是这样的情况吗?
第一个原则:我们专注于测试 aMethod(),Assembly.LoadFrom() 的测试是一个单独的问题。当我们为 aMethod() 构建测试时,我们不会尝试测试它的依赖关系。
那么我们可能需要什么样的测试呢?
如果测试可以提供 Mock 实现,那么最容易做到这一点。然后我们可以通过检查 Mock 是否收到预期值来测试 1。测试 2 通过返回明确定义的值(或对于多个测试不同的有趣值) 测试 3 通过生成选定的错误条件。
因此,您已将代码更改为如下所示:
也许加载的内容是以其他方式注入的,但重点是您现在可以通过设置合适的加载器来指定不同的测试。例如,对于第一次测试。
因此,如果您正在做这种事情,那么是的,我会说您正在启用 TDD。
Is this the situation?
First principle: We are focusing on testing aMethod(), the testing of Assembly.LoadFrom() is a separate problem. While we are building tests for aMethod() we don't try to test its dependencies.
So here what kind of tests might we need?
It is easiest to do this if the test can supply a Mock implementation. Then we can test 1 by checking that the Mock received the expected value. Test 2 by returning a well defined value (or for mulitiple tests different interesting values) Test 3 by generating chosen error conditions.
So you have changed your code to something like this:
Maybe the loaded is injected in some other way, but the point is that you can now specify different tests my setting up a suitable loaoder. For example, for the first test.
So if that's the kind of thing you are doing then yes, I'd say you're enabling TDD.