我们一直在尝试使用C#编写的worker类的单元测试,它使用moq模拟第三方API(基于COM)来动态创建模拟对象.NUnit是我们的单元测试框架.
这个第三方组件实现了几个接口,但还需要使用事件回调到我们的工作类.我们的计划是模拟第三方组件可以引发的事件,并测试我们的工人类是否按预期运行.
不幸的是,我们遇到了一个问题,因为moq似乎无法模拟并引发外部定义的事件.遗憾的是,我无法提供我们正在使用的确切第三方API的代码,但我们使用MS Word API重新创建了该问题,并且还显示了在使用本地定义的界面时测试如何工作:
using Microsoft.Office.Interop.Word;
using Moq;
using NUnit.Framework;
using SeparateNamespace;
namespace SeparateNamespace
{
public interface LocalInterface_Event
{
event ApplicationEvents4_WindowActivateEventHandler WindowActivate;
}
}
namespace TestInteropInterfaces
{
[TestFixture]
public class Test
{
[Test]
public void InteropExample()
{
// from interop
Mock<ApplicationEvents4_Event> mockApp = new Mock<ApplicationEvents4_Event>();
// identical code from here on...
bool isDelegateCalled = false;
mockApp.Object.WindowActivate += delegate { isDelegateCalled = true; };
mockApp.Raise(x => x.WindowActivate += null, null, null);
Assert.True(isDelegateCalled);
}
[Test]
public void LocalExample()
{
// from …Run Code Online (Sandbox Code Playgroud) 我很难理解信号如何进入我的应用程序(以及它们如何工作期).以下是我认为适用的三个方面(根据我目前的知识):
我是完全偏离基地(我觉得我可能会).我收到信号和多线程混淆了吗?如果是这样,他们在应用程序中进行比较吗?它们只是用于解耦吗?另外,确保你提前实例化它们并且不使用本地函数(因为它们会收集垃圾)是什么?有人可以详细说明吗?我是否应该将它们全部放入请求中间件中以便我不必担心?
我有一点时间让我的Web服务客户端与我的Web服务通信,这需要客户端证书.我正在使用JAX-WS 2.1,Web服务请求首先通过IIS,然后在身份验证后转发到JBoss.
我使用自签名证书作为客户端证书,它安装在Windows"服务器"的"受信任的根证书颁发机构"部分中.
如果我尝试使用Internet Explorer访问服务的WSDL,系统会提示我输入证书,然后选择我创建的证书,一切似乎都正常.这让我相信所有正确的"人"都可以信赖所有证书.
下面我可以看到服务器包含对我的"happyFunBall"的引用作为它信任的权限,因为它包含在握手的CertificateRequest部分中:
*** CertificateRequest
Cert Types: RSA, DSS`
Cert Authorities:
...
<CN=Symantec Root CA, O=Symantec Corporation>
<CN=DoD Root CA 2, OU=PKI, OU=DoD, O=U.S. Government, C=US>
<CN=Microsoft Root Authority, OU=Microsoft Corporation, OU=Copyright (c) 1997 Microsoft Corp.>
<CN=happyFunBall, O=blah.blah.com, C=US>
<CN=DoD PKI Med Root CA, OU=PKI, OU=DoD, O=U.S. Government, C=US>
<CN=ECA Root CA 2, OU=ECA, O=U.S. Government, C=US>
<CN=Symantec Root 2005 CA, O=Symantec Corporation, C=US>
<CN=Microsoft Root Certificate Authority, DC=microsoft, DC=com>
...
*** ServerHelloDone
Run Code Online (Sandbox Code Playgroud)
我几乎是这个东西的新手,所以我可能会遗漏一些非常基本的东西,我可能不会包含所有相关信息...无论如何,我使用keytool …
好的,所以我的.NET项目中有服务引用.是的,我知道您现在可以访问代理类.
但是在过去,我习惯通过使用NVP的HttpWebRequest对象来做这件事,但从未尝试过使用WSDL并以这种方式发送SOAP请求.
我不太确定使用哪个对象来发送请求.不知道从哪里开始.我看过这些文档,但看不到.NET和PayPal的好例子.
除了WSDL与通过NVP API和查询字符串params发送HttpWebRequest之外,我真的不明白你发送请求的方式是否有所不同.它只是在Http上,所以你不能在SOAP API上使用HttpWebRequest(使用WSDL)吗?
我正在尝试在Prolog中应用简化算法,但我不是Prolog大师.我需要它没有任何错误,所以我认为你们可能能够提供帮助.
Prolog中DPLL算法的实现是什么?
我有一个使用IPC :: Open3(或IPC :: Open2,二者显示出这个问题)调用外部二进制(在这种情况下bogofilter),并通过对儿童输入文件句柄给它一些输入的模块,然后读取结果子输出句柄.在大多数环境中运行时,代码工作正常.但是,此模块的主要用途是在Apache 2.2.6下运行的Web服务中.在那种环境下,我得到了错误:
不能fdopen STDOUT:参数无效
这只在代码在Apache下运行时才会发生.此前,该代码构成的可怕复杂的命令,其中包括一个在这里,文件的输入,并与背蜱运行它.虽然有效,但速度非常慢,并且容易以独特和令人困惑的方式打破.我不想重新使用旧版本,但我无法解决这个问题.
在我的情况我有一个的MainView + MainViewModel,+的UserControl1用户控件2.在我的MainView有2个按钮标记:Button_ShowUserControl1 + Button_ShowUserControl2.在的MainView下部我有一个"ContentGrid"这需要/ should_take ......每一个用户控件.
我的目标:
当Button_ShowUserControl1被点击的UserControl1是可见和UserControl2 或任何其它用户控件必须设置倒塌.同样适用于Button_ShowUserControl2.
我的问题:
1.)由于UserControls应在应用程序启动时加载,如何将它们全部放在一个"ContentGrid"中?多数民众赞成实际上是不可能的...所以我怎么能让一个UserControl可见而另一个在同一个地方/"ContentGrid"刚刚崩溃?
2.)因为1.)似乎不可能如何在应用程序启动时实例化所有UserControl并使它们仅在单击相应的Button时可见/折叠?
3.)由于UserControl有一个属性Visibility = Visible/Hidden/Collapsed,如何绑定到ViewModel中的属性返回像Collapsed这样的值?我只能获得像Visibility = false/true这样的布尔值?
我的测试代码:
<Grid x:Name="LayoutRoot" Background="#FFBDF5BD" ShowGridLines="False">
<Grid.RowDefinitions>
<RowDefinition Height="96*" />
<RowDefinition Height="289*" />
</Grid.RowDefinitions>
<Grid HorizontalAlignment="Stretch" Name="MenuGrid" VerticalAlignment="Stretch" Background="#FFCECEFF">
<StackPanel Name="stackPanel1" Background="#FFEDFF00" Orientation="Horizontal">
<Button Content="User Data 1" Height="35" Name="button1" Command="{Binding Path=ShowUserControl1Command}" Width="150" Margin="100,0,0,0" />
<Button Content="User Data 2" Height="35" Name="button2" Width="150" Margin="100,0,0,0" />
</StackPanel>
</Grid>
<Grid Grid.Row="1" HorizontalAlignment="Stretch" Name="ContentGrid" VerticalAlignment="Stretch" Background="#FFB15454" />
</Grid>
<UserControl x:Class="SwapUserControls.MVVM.UserControl2" …Run Code Online (Sandbox Code Playgroud) 可能重复:
我什么时候应该在课堂上使用静态方法,有什么好处?
我现在正在使用PHP.
我正在研究两组函数.
我有一个由日期处理函数组成的类.
在这个类中,我不需要属性,因为每个函数/方法或多或少都是一个实用程序.因此,我使我的班级功能全部静止.
我在这里有几个问题.
1)使用静态方法有什么好处?据我所知,由于没有Object,因此处理开销较低.我也听说这可以忽略不计(视情况而定).
2)除了公用事业之外,还有哪些其他类型的功能/方法是"静态"的良好候选者?
谢谢
我需要将文件夹及其子文件夹的整个(可见)内容作为列表.这可能吗?
我有一个我正在研究的宠物项目,它有多个工作线程.将所有内容输出到控制台变得越来越难以遵循,因此我想开发一个每个线程有一个输出区域的UI.我想知道线程向UI发送更新的最佳方式.我有两个想法:
1)让每个线程在新数据可用时设置"DataUpdated"标志,并让UI定期检查新数据.
2)创建每个线程,并在新数据可用时调用UI Update(...)方法.
我目前倾向于(2)有两个原因:我不喜欢"检查"每个线程的想法,因为这是我的第一个多线程应用程序,(2)似乎比它可能更简单.我想知道: