小编Bri*_*128的帖子

如何在Chutzpah的无头浏览器中使用templateUrl测试指令

有谁知道如何让像Chutzpah的Visual Studio测试适配器这样的无头浏览器允许指令访问其.html模板文件?Chutzpah使用PhantomJS作为无头浏览器,似乎限制了我的选择.

我正在使用Chutzpah Test Adapter 2.5和AngularJS 1.2.0-r.2.

我收到错误:

意外请求:获取myApp/directives/template.html

这是由Angular尝试使用$ http服务访问我的指令模板引起的.

我找到了一些不同的解决方法:

  1. 手动使用XMLHttpRequest导入模板.
  2. 使用像Grunt这样的实用程序将模板内联到指令的JS代码中.
  3. $httpBackend.when('GET', 'myApp/directives/template.html').passThrough() - 这仅适用于e2e测试,而不适用于单元测试.
  4. 将模板直接放入测试代码中.

这些选择都没有特别让我满意.我希望能够让指令透明地加载它的模板,这样我就可以将它作为一个组件进行测试.有没有办法让这个场景有效?

示例代码:

angular.module('myDirective', []).directive('myDirective', function() {
    return {
        restrict: 'E',
        transclude: true,
        templateUrl: 'myApp/directives/template.html',
        // Some other options, omitted for brevity.
    };
});
Run Code Online (Sandbox Code Playgroud)

template.html:

<div><div ng-transclude></div></div>
Run Code Online (Sandbox Code Playgroud)

茉莉花测试示例:

describe('myDirective', function() {
    // Assign $scope using inject(), load module etc.
    // Insert workaround for $httpBackend loading my templateUrl here.
    it('should transclude content', function() {
        var element = $compile("<my-directive>Look Mom, I'm in my directive!</my-directive>")($scope); …
Run Code Online (Sandbox Code Playgroud)

jasmine chutzpah angularjs

16
推荐指数
2
解决办法
4578
查看次数

C#中接口的等效Java 1.6 @Override

这个问题给出了Java的@Override override在方法上具有C#等价关键字的答案.但是,从Java 1.6开始,@ Override注释也可以应用于接口.

实际使用的是,在Java中,当一个类声称它实现了一个接口方法时(例如,如果删除了接口方法),就会遇到编译错误.C#中有相同的功能吗?

一些代码示例:

Java的:

public interface A {
  public void foo();
  // public void bar(); // Removed method.
}

public class B implements A {
  @Override public void foo();
  @Override public void bar(); // Compile error
}
Run Code Online (Sandbox Code Playgroud)

C#:

public interface IA {
  void Foo();
  // void Bar(); // Removed method.
}

public class B : A {
  public override void Foo(); // Doesn't compile as not 'overriding' method
  public void Bar(); // Compiles, but no …
Run Code Online (Sandbox Code Playgroud)

c# java overriding interface

15
推荐指数
1
解决办法
2162
查看次数

C#中空泛型参数<,>的术语是什么?

可能重复:
C#语言:泛型,打开/关闭,绑定/未绑定,构造

在使用C#中的反射做一些事情时,我注意到某些类型具有类型定义,例如

Foo<,>
Run Code Online (Sandbox Code Playgroud)

这种表示法的官方术语是什么?

c# generics

10
推荐指数
1
解决办法
3351
查看次数

使用Mockito的ArgumentCaptor类来匹配子类

以下代码显示了我的问题.实际上,我正在尝试使用Mockito的ArgumentCaptor来验证方法是否使用某个具体类调用一次.如果可能的话,我想在这里使用ArgumentCaptor,但我开始怀疑我需要使用自定义的ArgumentMatcher.

问题是该行Mockito.verify(mocked).receive(captor.capture());(编辑:将此添加到下面的代码中)失败,带有TooManyActualInvocations异常(2而不是1).我想了解为什么会发生这种情况 - Mockito的执行效果不佳还是由于泛型的类型擦除造成的限制?

public class FooReceiver {
  public void receive(Foo foo) {

  }
}

public interface Foo {
}

public class A implements Foo {
}

public class B implements Foo {
}

public class TestedClass {
  private FooReceiver receiver;
  public TestedClass(FooReceiver receiver) {
    this.receiver = receiver;
  }

  public void doStuff() {
    receiver.receive(new A());
    receiver.receive(new B());
  }
}

public class MyTest {

  @Test
  public void testingStuff() {
    // Setup
    FooReceiver mocked = Mockito.mock(FooReceiver.class);
    TestedClass t = new …
Run Code Online (Sandbox Code Playgroud)

java polymorphism mockito

9
推荐指数
2
解决办法
5772
查看次数

如何通过Validator获取有关无效DOM元素的更多信息?

我正在使用javax.xml.validation.Validator针对XSD架构的类来验证内存中的DOM对象.SAXParseException每当在我填充DOM的信息中存在一些数据损坏时,我就会在验证期间抛出一个被抛出.

一个示例错误:

org.xml.SAXParseException:cvc-datatype-valid.1.2.1:'???? ?? [????? G?> p~tn ?? ~0?1]'无效'hexBinary'的价值.

我希望有一种方法可以在我的内存中找到这个错误的位置并打印出有问题的元素及其父元素.我目前的代码是:

public void writeDocumentToFile(Document document) throws XMLWriteException {
  try {
    // Validate the document against the schema
    Validator validator = getSchema(xmlSchema).newValidator();
    validator.validate(new DOMSource(document));

    // Serialisation logic here.

  } catch(SAXException e) {
    throw new XMLWriteException(e); // This is being thrown
  } // Some other exceptions caught here.
}

private Schema getSchema(URL schema) throws SAXException {
  SchemaFactory schemaFactory = 
    SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

  // Some logic here to specify a ResourceResolver

  return …
Run Code Online (Sandbox Code Playgroud)

java xml xml-validation

5
推荐指数
1
解决办法
2991
查看次数

如何围绕C代码对托管包装器进行单元测试?

我将围绕一些C函数创建一个Managed-C++包装器,以允许它在其他.NET解决方案中使用.我正在寻找一个非常简约的包装,如:

C头中的签名:

void DOSTH(const char*, short, long*);
Run Code Online (Sandbox Code Playgroud)

暴露的托管界面:

public void doSomething(String^ input, short param, [Out] long^ %result);
Run Code Online (Sandbox Code Playgroud)

为此,我的解决方案将具有C头,并将引用包含我正在构建的已编译C API的.dll.

作为Visual Studio的新手,我不确定如何对其进行单元测试.是否可以模拟.dll来提供模拟实现?是否有一个图书馆可以让这种任务变得简单?是否有一个特定的解决方案结构,我应该旨在使这更容易?

在这方面的任何指导都会很棒.谷歌的搜索让我想要了解有关单独测试托管包装的更多信息.

c unit-testing managed-c++ dependency-injection visual-studio-2010

5
推荐指数
1
解决办法
549
查看次数

我可以用合成替换此继承吗?

因此,让我们从一些背景[经过修改以使其更加具体[。我意识到我可以替换以下内容:

abstract class MessageHandler {
  public void handleMessage(Message m) {
    validateMessage(m);
    processMessage(m);
  }

  protected void validateMessage(Message m) {
    // Default validation logic
  }

  protected abstract void processMessage(Message m);
}

class FakeMessageHandler extends MessageHandler {
  proteced void processMessage(Message m) {}
}
Run Code Online (Sandbox Code Playgroud)

下一段代码:

interface IMessageProcessor {
  public void processMessage(Message m);
}

class FakeMessageProcessor implements IMessageProcessor {
  public void processMessage(Message m) {}
}

class MessageHandler {
  private IMessageProcessor processor;
  public MessageHandler(IMessageProcessor processor) {
    this.processor = processor;
  }

  public void handleMessage(Message message) {
    validateMessage(message); …
Run Code Online (Sandbox Code Playgroud)

java oop dependency-injection

1
推荐指数
1
解决办法
1252
查看次数