作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 ComponentUnderTest.cfc 的组件,看起来像:
<cfcomponent output="false">
<cfset externalComponent = Component("Externalcomponent");
<cffunction name="FunctionUnderTest" access="public"...>
<cfset externalComponent.ExternalFunction()>
</cffunction>
</cfcomponent>
<cfcomponent displayname="ComponentTester" extends="mxunit.framework.TestCase>
<cffunction name="MockForExternalFunction">
.....
</cffunction>
??????
<cffunction name=TestComponent>
<cfset componentUnderTest = CreateObject("ComponentUnderTest")>
?????
<cfset componentUnderTest.FunctionUnderTest()> <!--- should call MockForExternalFunction --->
</cffunction>
</cfcomponent>
最佳答案
您将不得不将模拟组件注入(inject) componentUnderTest
替换现有的。
你可以这样做:
// I took this lot from the docs Henry pointed you to: I'm not familiar with MXUnit's mocking framework, but this sounds right
mockedObjectWithMockedMethod = mock();
mockedObjectWithMockedMethod.ExternalFunction().returns(MockForExternalFunction());
function injectVariable(name, value){
variables[name] = value;
}
componentUnderTest.injectVariable = injectVariable;
componentUnderTest.injectVariable("externalComponent", mockedObjectWithMockedMethod);
MockForExternalFunction()
只是提供了
ExternalFunction()
时要返回的返回值被调用,而不是调用 ExternalFunction()。不过,这应该没问题。
关于coldfusion - 使用 MXUnit 模拟/ stub 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861514/
背景 当我们想要创建一个 ColdFusion 应用程序(在我们的开发环境中,与我的 PC 分开的盒子)时,我们设置了一个 IIS(互联网信息服务)站点,其物理位置包含构成我们站点的所有 CFC、CF
我使用 MxUnit 作为我的 ColdFusion 项目的测试框架。但我不确定测试用例中的函数以何种顺序执行。我在数据库中插入了虚拟记录以进行测试,在 beforeTests()并删除 afterT
我正在为 CFML 开发 MxUnit 测试框架。在其中,我想检查函数的返回值是否是有效的 JSON。目前我正在使用: assertEquals(True,IsJSON(userEventItems)
我有一个名为 ComponentUnderTest.cfc 的组件,看起来像: 如何在 MXUnit 测试组件中模拟/ stub externalComponent.exter
我是一名优秀的程序员,十分优秀!