1
我有这是使用Assembly.LoadFrom(...)语句,并返回从卫星装配支持的区域性方法的方法,所以我怎么能为这种类型的方法编写单元测试。TDD - 如何编写测试用例,作为Assembly.LoadFrom(...)
我所做的是,将该静态方法/逻辑封装为在其他类中返回文化并使用它的实例方法。这是正确的方法吗?
我有这是使用Assembly.LoadFrom(...)语句,并返回从卫星装配支持的区域性方法的方法,所以我怎么能为这种类型的方法编写单元测试。TDD - 如何编写测试用例,作为Assembly.LoadFrom(...)
我所做的是,将该静态方法/逻辑封装为在其他类中返回文化并使用它的实例方法。这是正确的方法吗?
这是情况吗?
aMethod(whatToLoad) {
// other stuff
x = Assembly.LoadFrom(whatToLoad);
// code using x
}
第一原则:我们的重点是测试amethod方法(),Assembly.LoadFrom的测试()是一个单独的问题。当我们为aMethod()构建测试时,我们不试图测试它的依赖关系。
那么我们需要什么样的测试?
它如果测试可以提供模拟实现,则最简单。然后我们可以通过检查Mock是否收到预期值来测试1。测试2通过返回一个明确定义的值(或多个测试不同的有趣值)测试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。