小编Est*_*ban的帖子

如何使用 go modules 删除已安装的包

我已经使用 go modules 安装了一个包(go get in Go 1.13),现在我想删除它。在文档中没有任何关于此的内容,并且在go get docu 中也没有。

手动从 go.mod 中删除包并不能解决问题,因此它保留在 go.sum 中。

我应该如何以干净的方式移除包裹?

go vgo go-modules

32
推荐指数
2
解决办法
3万
查看次数

从grails mock方法中抛出异常

在Grails的控制器单元测试(更具体地说是Spock ControllerSpec)上,我想在协作者抛出异常时检查测试方法的行为.

我正在使用mockFor实用程序(来自Spock的UnitSpec或Grails的GrailsUnitTestMixin)来指定我在测试中对这种异常抛出方法的要求,如下所示:

@TestFor(TestController)
class TestControllerSpec extends Specification {

    def "throwing and exception from a mock method should make the test fail"() {
        setup:
        def serviceMock = mockFor(TestService)
        serviceMock.demand.exceptionThrowingMethod() { throw new Exception() }
        controller.testService = serviceMock.createMock()

        when:
        controller.triggerException()

        then:
        thrown(Exception)
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,在triggerException我调用内部exceptionThrowingMethod,像这样:

class TestController {

    def testService

    def triggerException() {
        testService.exceptionThrowingMethod()
    }
}
Run Code Online (Sandbox Code Playgroud)

但是测试失败了:

预期的异常java.lang.Exception,但没有抛出异常

我调试了执行并且异常不是beign抛出,exceptionThrowingMethod令人惊讶的是,invosure 返回了一个Closure.Nevermind将throws声明添加到方法的签名中也是行不通的.

我认为这与Spock有关,但是我尝试使用grails的测试mixins进行了一次simliar测试并得到了相同的结果.这是我的尝试:

@TestFor(TestController)
class TestControllerTests {

    void testException() {
        def serviceMock = mockFor(TestService) …
Run Code Online (Sandbox Code Playgroud)

testing grails unit-testing mocking

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

测试AngularJS服务初始化

我有一个AngularJS服务,在"初始化"时(即在工厂函数中)从localStorage加载数据,如下所示:

module.service('myService', function ($localStorage) {
    var data = $localStorage.data;
    if (!isValid(data)) // isValid omitted on purpose, not relevant.
      data = undefined;

    return {
      getData: function() {
        return data;
      }
      setData: function(value) {
        if (isValid(value))
          data = value;
      }
    };
}
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我想检查data是否实际从localStorage加载,如果值存在并且有效; 这不是关于测试isValid,而是使用它和$ localStorage的服务初始化.

我希望能够在我的测试中调用myService工厂.我在beforeEach钩子中获得了它的初始化实例,因为我还需要测试myService的方法.我想我需要为我的特定初始化测试创建一个不同的实例,但由于服务是AngularJS中的单例,我不确定是否可以这样做.

describe('myService', function() {
  myService = $localStorage = null;

  beforeEach(module('app'));

  beforeEach(inject(function($injector) {
    myService = $injector.get('myService');
    $localStorage = $injector.get('$localStorage');
  });

  it('should look for stuff in localStorage on creation', function () {
    $localStorage.data = 'my …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing angularjs

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

标签 统计

unit-testing ×2

angularjs ×1

go ×1

go-modules ×1

grails ×1

javascript ×1

mocking ×1

testing ×1

vgo ×1