我正在构建一个rails 4 app.我创建了一个支持文件来模拟登录.这是文件
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)
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的正确方法是测试能力,但已经完成了.
我正在为一个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. …
我有以下存储库,我想测试它。我知道这可能是一个愚蠢的问题,但我仍在学习。
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) 我现在正面临一个问题.
我们和我们的团队正在使用REST开发新的应用程序.我们面临的问题是我们有时需要获取某种数据并且不知道如何创建URI.
例如.如果我需要一个产品列表,那么api/products /(GET)就可以了.单个产品,api/products/1(GET)
如果我只需要缺货的产品清单,或只剩下1件商品的产品怎么办?
我会用什么URI?我不认为REST可以做到这一点.
谢谢.
BTW:我正在使用VS 2012 Web API.
angularjs ×1
flutter ×1
jasmine ×1
javascript ×1
mockito ×1
provider ×1
rest ×1
restful-url ×1
riverpod ×1
rspec ×1
rspec-rails ×1
unit-testing ×1
uri ×1