TDD - 如何编写测试用例的方法,作为Assembly.LoadFrom(...)(TDD -

2019-08-04 10:15发布

我有这是使用Assembly.LoadFrom(...)语句,并返回从卫星装配支持的区域性方法,所以我怎么能写这种类型的方法的单元测试。

我所做的就是,裹静态方法/逻辑回归文化花药类和使用它的实例方法。 这是正确的做法?

Answer 1:

这是什么情况?

   aMethod(whatToLoad) {
          // other stuff

          x = Assembly.LoadFrom( whatToLoad );

          // code using x
  }

第一个原则:我们的重点是测试amethod方法(),Assembly.LoadFrom的测试()是一个单独的问题。 虽然我们正在建设试验amethod方法(),我们不要试图去测试它的依赖。

所以在这里,我们可能需要什么样的测试?

  1. 我们传递了whatToLoad正确的价值
  2. 我们正确地存储/使用的返回值
  3. 我们正确处理来自Assembly.LoadFrom引发的错误或异常()

这是最容易做到这一点,如果测试可以提供模拟实现。 然后,我们可以通过检查素收到了预期值测试1。 试验2通过返回良好定义的值(或对于mulitiple测试不同有趣的值)通过产生选择错误条件试验3。

所以,你必须改变你的代码是这样的:

  aMethod(loader, whatToLoad) {
          // other code

          x = loader.Load( whatToLoad );

          // code using x
  }

也许加载一些其他的方式注入,但问题是,你现在可以指定不同的测试我设置了一个合适的loaoder。 例如,对于第一次测试。

testLoader = new MockLoaderThatRembers();

tested.aMethod(testLoader, loadThis);

assertEquals(testLoader.getLoader(), loadThis);

所以,如果这是你正在做的那么样的东西,是的,我说你要启用TDD。



文章来源: TDD - How to write test case for a method that as Assembly.LoadFrom(…)
标签: tdd nunit