gpt4 book ai didi

coldfusion - 使用 MXUnit 模拟/ stub 组件

转载 作者:行者123 更新时间:2023-12-01 06:38:39 26 4
gpt4 key购买 nike

我有一个名为 ComponentUnderTest.cfc 的组件,看起来像:

<cfcomponent output="false">
<cfset externalComponent = Component("Externalcomponent");

<cffunction name="FunctionUnderTest" access="public"...>
<cfset externalComponent.ExternalFunction()>
</cffunction>
</cfcomponent>

如何在 MXUnit 测试组件中模拟/ stub externalComponent.externFunction():
<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/

26 4 0
文章推荐: java - Java中的简单动画
文章推荐: jquery - 页面加载 jQuery 后匹配 div 高度
文章推荐: jquery - 隐藏设置为显示 :block with jQuery 的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com