小编Ric*_*rmo的帖子

如何包含rspec的支持文件

我正在构建一个rails 4 app.我创建了一个支持文件来模拟登录.这是文件

规格/支持/ spec_test_helper.rb

module SpecTestHelper
  def login(user)
    request.session[:user_id] = user.id
  end

  def current_user
    User.find(request.session[:user_id])
  end
end
Run Code Online (Sandbox Code Playgroud)

spec_helper.rb

config.include SpecTestHelper, :type => :controller
Run Code Online (Sandbox Code Playgroud)

控制器规格

describe BooksController, "user role" do

  user = Fabricate(:user) do
    role { Role.find_by_account_type("user") }
  end

  login(user)
end
Run Code Online (Sandbox Code Playgroud)

支持文件给出了未定义的方法错误.这是错误消息的一部分:

spec/controllers/books_controller_spec.rb:27:in `block in <top (required)>': undefined method `login' for #<Class:0x007f9f83193438> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

我正在测试CanCan.我知道测试CanCan的正确方法是测试能力,但已经完成了.

rspec ruby-on-rails rspec-rails

13
推荐指数
4
解决办法
1万
查看次数

茉莉花测试javascript getter无法正常工作

我正在为一个angularjs工厂写一些测试,一些期望不起作用,我真的不知道为什么.

这是我的工厂(部分).'使用严格';

angular.module('myAppMod')
  .factory('Person', function(BaseModel) {
    return BaseModel.extend({
      get fullname() {
        var name = [];
        if (this.first_name) {
          name.push(this.first_name);
        }
        if (this.person_extra && this.person_extra.middle_name) {
          name.push(this.person_extra.middle_name);
        }
        if (this.last_name) {
          name.push(this.last_name);
        }
        return name.join(' ');
      }
    });
  });
Run Code Online (Sandbox Code Playgroud)

和茉莉花测试:

var p;
beforeEach(function() {
  p = new Person({
    first_name: 'first_name',
    person_extra: {
      middle_name: 'middle_name',
      media_item_id: null
    },
    last_name: 'last_name',
    security_level: 'security_level'
  }, true);
});

it("has a fullname", function() {
  expect(p.fullname).toEqual('first_name middle_name last_name');
});
Run Code Online (Sandbox Code Playgroud)

p.fullname正在返回""(空字符串)并在工厂中console.log(this.first_name),是undefined. …

javascript jasmine angularjs

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

如何模拟 Riverpod 的 Reader?

我有以下存储库,我想测试它。我知道这可能是一个愚蠢的问题,但我仍在学习。

class AuthRepository implements AuthBaseRepository {
  final Reader _read;

  const AuthRepository(this._read);

  @override
  Future<User> login({String email, String password}) async {
    try {
      final response = await _read(dioProvider).post(
        '/sign_in',
        data: {
          "user": {
            "email": email,
            "password": password,
          },
        },
      );
      return _mapUserFromResponse(response);
    } on DioError catch (_) {
      throw const CustomException(message: 'Invalid login credentials.');
    } on SocketException catch (_) {
      const message = 'Please check your connection.';
      throw const CustomException(message: message);
    }
  }

Run Code Online (Sandbox Code Playgroud)

这就是我到目前为止所做的:


void main() {
  test('loadUser', () async {
    Dio …
Run Code Online (Sandbox Code Playgroud)

provider unit-testing mockito flutter riverpod

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

RESTful api URI到Controller中的自定义操作

我现在正面临一个问题.

我们和我们的团队正在使用REST开发新的应用程序.我们面临的问题是我们有时需要获取某种数据并且不知道如何创建URI.

例如.如果我需要一个产品列表,那么api/products /(GET)就可以了.单个产品,api/products/1(GET)

如果我只需要缺货的产品清单,或只剩下1件商品的产品怎么办?

我会用什么URI?我不认为REST可以做到这一点.

谢谢.

BTW:我正在使用VS 2012 Web API.

rest uri restful-url

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