对于单元测试,我使用的是NUnit 2.6和Moq 4.0.有一个关于虚拟成员的特殊情况,其中Moq的代理对象不会将方法调用中继到实际实现(可能是通过设计).例如,如果我上课了......
public class MyClass {
protected virtual void A() {
/* ... */
}
protected virtual void B(...) {
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
...我使用Moq来覆盖测试夹具中GetSomethingElse的A()方法......
var mock = new Mock<MyClass>();
mock.Protected().Setup("A").Callback(SomeSortOfCallback);
Run Code Online (Sandbox Code Playgroud)
...使用模拟A方法非常出色; 但是,如果所述方法中的任何内容都会调用非模拟方法B,则该方法将不执行任何操作和/或返回默认值,即使存在实际实现MyClass.
有办法解决这个问题吗?我使用Moq错了吗?
提前谢谢,
曼尼
我试图用C#驱动程序更新(类型)MongoDB集合中的行.在处理特定类型集合的数据时MongoCollection<User>,我倾向于避免从集合中检索敏感数据(salt,密码哈希等)
现在我正在尝试更新User实例.但是,我从来没有真正检索过敏感数据,因此我想default(byte[])在应用修改并将新数据提交给集合之前,这些数据将存储在检索到的模型实例中(据我所知).
也许我正在监督MongoDB C#驱动程序中的一些小问题,如何在MongoCollection<T>.Save(T item)不更新特定属性的情况下使用User.PasswordHash或者User.PasswordSalt?我应该首先检索完整记录,在那里更新"安全"属性,然后将其写回?或者是否有一个奇特的选择来从更新中排除某些字段?
提前致谢
我尝试使用新的 NPM 注册表,它现在是免费 GitLab 版本的一部分。我正在尝试创建一个 NPM 包并将其发布到我们公司的 GitLab 实例上。尝试运行时npm publish,进程退出并显示错误:
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://gitlab.myemployer.com/api/v4/projects/1873/packages/npm/@sqt-klu%2fodysseus-nn-core
npm ERR! 404
npm ERR! 404 '@sqt-klu/odysseus-nn-core@0.0.1' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
Run Code Online (Sandbox Code Playgroud)
通过 GitLab CI/CD …
我最近尝试在Silverlight 4中生成报告.在我的问题域中,这些报告需要直接转到打印机和/或客户端SL应用程序创建PDF并允许用户将其存储在某处.
至于报告,它大致由50%流文本(包括枚举),30%表和20%图表组成.流动文本部分使其更具挑战性,因为必须进行适当的断线.
到目前为止,我尝试了以下方法 - 每种方法都有自己的缺点,使它们不那么可行:
Silverlight自己PrintDocument:从技术上讲,有两个主要问题.首先,让分页工作正常工作,并在适当的布局上打印UIElements是一个肮脏的hackjob和充满妥协; 幸运的是,到目前为止,我已经成功完成了这项工作.但是,PrintDocument该类始终将所有视觉效果呈现为位图,然后再将其发送出去; 如果使用PDF打印机并希望仍能搜索/选择文本,这并不是那么有趣.David Poll在"Silverlight and Beyond" [1]中采用的方法并没有那么有用,因为它本身就遵循相同的方法,因此遇到了非常相似的问题.
silverPDF [2]:一个几乎没有文件记录的库,需要手动完成大部分布局(前一种方法至少允许我重复使用Silverlight的布局引擎).到目前为止,我认为没有办法(例如)测量段落,并且使用long flowtext的唯一样本使用布局矩形的硬编码绝对值.此外,发展方似乎不活跃.
就个人而言,我现在正在考虑采用完全不同的策略:简单地生成HTML文档.但我希望这里的社区可能对上述两种方法有所暗示,或者知道其他好方法.
提前谢谢,〜曼尼
我正在尝试使用Nokogiri生成部分HTML文档,例如以下内容:
html_content = Nokogiri::HTML::Builder.new() do |doc|
# producing document here, redacted for brevity
end.to_html
Run Code Online (Sandbox Code Playgroud)
这工作得很好,除了有点跟不上:数据稍后将被调度到远程的Drupal供电的服务器,并呈现为页面的一部分,因此应该不包含最初的<!DOCTYPE html ...>声明.
我如何说服Nokogiri不生产DOCTYPE标签?或者Nokogiri的HTML构建器是错误的方法吗?
提前致谢.
我最近试图找到一种在单服务器多客户端系统中保护服务器和客户端之间通信的方法.在密码学领域没有做太多工作,我希望人们能够获得宝贵的意见或反馈,以防我错过了一些重要的东西.
如果重要,将使用.NET Framework 4.0.现在开始有趣的部分:
客户端建立与服务器的不安全连接(很可能是RESTful调用),要求服务器的公钥(如果未知)和(伪随机)初始化向量.此时,如果之前未知,客户端也将提交他的公钥.
双方都使用Elliptic Curve Diffie-Hellman(基于散列或基于hmac的密钥派生函数,我还不是100%肯定;想法?)来生成密钥(使用System.Security.Cryptography.ECDiffieHellmanCng)
双方计算派生的初始化向量 - 例如通过使用客户端的盐渍密码哈希作为密钥应用密钥哈希.
客户端使用对称加密(AES或Rijndael?)恢复与(2)期间生成的密钥和(3)的修改初始化向量的通信,希望使会话安全.
现在我想知道:
我正在尝试在 HTTP API 中创建一个端点,定期从远程设备接收数据。该项目发生了技术转变,设备之前以 XML 格式报告数据,而未来的实现将转向 JSON。
我正在使用 NestJS (7.x) 和 TypeScript 编写此 API。数据将通过相同的端点 ( ) 传入POST /,并且数据格式由标头区分Content-Type。
@Controller()
export class IngressController {
constructor(private readonly ingressService: IngressService) {
}
/* ... */
@Post('')
@Header('Cache-Control', 'none')
@HttpCode(HttpStatus.NO_CONTENT)
public async receive(
@Headers('Content-Type') contentType: string,
@Req() req: any,
@Body() body: string,
): Promise<InsertResponse> {
if (IngressController.isJson(contentType)) {
return { inserted: await this.ingressService.insertJsonString(req.body) };
}
if (IngressController.isXml(contentType)) {
return { inserted: await this.ingressService.insertXmlString(req.body) };
}
throw new BadRequestException(contentType, 'Unsupported Content-Type'); …Run Code Online (Sandbox Code Playgroud)